<?xml version="1.0" encoding="utf-8"?>
<doc>
  <assembly>
    <name>Gallio</name>
  </assembly>
  <members>
    <member name="T:Gallio.ActionChain`1">
      <summary>An action chain captures a sequence of actions to be performed as part of a complex multi-part process.</summary>
      <typeparam name="T">The action argument type</typeparam>
    </member>
    <member name="F:Gallio.ActionChain`1.NoOp">
      <summary>Gets a singleton action that does nothing when invoked. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.ActionChain`1.Action">
      <summary>
        <para> Gets or sets a representation of the chain as a single action. </para>
        <para> The action is progressively augmented as new contributions are registered using <see cref="M:Gallio.ActionChain`1.Before(System.Action{`0})" />, <see cref="M:Gallio.ActionChain`1.After(System.Action{`0})" /> and <see cref="M:Gallio.ActionChain`1.Around(Gallio.ActionDecorator{`0})" />. By default the action is <see cref="F:Gallio.ActionChain`1.NoOp" />. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`1.After(System.Action{`0})">
      <summary>Registers an action to perform after all other actions currently in the chain.</summary>
      <param name="action">The action to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`1.Around(Gallio.ActionDecorator{`0})">
      <summary>Registers an action to perform around all other actions currently in the chain. The contained part of the chain is passed in as an action to the decorator that the decorator can choose to run (or not) as needed.</summary>
      <param name="decorator">The decorator to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`1.Before(System.Action{`0})">
      <summary>Registers an action to perform before all other actions currently in the chain.</summary>
      <param name="action">The action to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`1.Clear">
      <summary>Clears the chain and sets it action to <see cref="F:Gallio.ActionChain`1.NoOp" />.</summary>
    </member>
    <member name="T:Gallio.ActionChain`2">
      <summary>An action chain captures a sequence of actions to be performed as part of a complex multi-part process.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
    </member>
    <member name="F:Gallio.ActionChain`2.NoOp">
      <summary>Gets a singleton action that does nothing when invoked. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.ActionChain`2.Action">
      <summary>
        <para> Gets or sets a representation of the chain as a single action. </para>
        <para> The action is progressively augmented as new contributions are registered using <see cref="M:Gallio.ActionChain`2.Before(Gallio.Action{`0,`1})" />, <see cref="M:Gallio.ActionChain`2.After(Gallio.Action{`0,`1})" /> and <see cref="M:Gallio.ActionChain`2.Around(Gallio.ActionDecorator{`0,`1})" />. By default the action is <see cref="F:Gallio.ActionChain`2.NoOp" />. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`2.After(Gallio.Action{`0,`1})">
      <summary>Registers an action to perform after all other actions currently in the chain.</summary>
      <param name="action">The action to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`2.Around(Gallio.ActionDecorator{`0,`1})">
      <summary>Registers an action to perform around all other actions currently in the chain. The contained part of the chain is passed in as an action to the decorator that the decorator can choose to run (or not) as needed.</summary>
      <param name="decorator">The decorator to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`2.Before(Gallio.Action{`0,`1})">
      <summary>Registers an action to perform before all other actions currently in the chain.</summary>
      <param name="action">The action to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.ActionChain`2.Clear">
      <summary>Clears the chain and sets it action to <see cref="F:Gallio.ActionChain`2.NoOp" />.</summary>
    </member>
    <member name="T:Gallio.FuncChain`2">
      <summary>A function chain captures a sequence of actions to be performed as part of a complex multi-part process.</summary>
      <typeparam name="T">The function argument type</typeparam>
      <typeparam name="TResult">The function result type</typeparam>
    </member>
    <member name="P:Gallio.FuncChain`2.Func">
      <summary>
        <para> Gets or sets a representation of the chain as a single function. </para>
        <para> The function is progressively augmented as new contributions are registered <see cref="M:Gallio.FuncChain`2.Around(Gallio.FuncDecorator{`0,`1})" />. By default the action is whatever was passed into the constructor. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.FuncChain`2.Around(Gallio.FuncDecorator{`0,`1})">
      <summary>Registers a function decorator to perform around all other actions currently in the chain. The contained part of the chain is passed in as a function to the decorator that the decorator can choose to run (or not) as needed.</summary>
      <param name="decorator">The decorator to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator" /> is null</exception>
    </member>
    <member name="T:Gallio.Pair`2">
      <summary>An immutable record that holds two values.</summary>
      <typeparam name="TFirst">The type of the first value</typeparam>
      <typeparam name="TSecond">The type of the second value</typeparam>
    </member>
    <member name="P:Gallio.Pair`2.First">
      <summary>Gets the first value.</summary>
    </member>
    <member name="P:Gallio.Pair`2.Second">
      <summary>Gets the second value.</summary>
    </member>
    <member name="T:Gallio.Triple`3">
      <summary>An immutable record that holds three values.</summary>
      <typeparam name="TFirst">The type of the first value</typeparam>
      <typeparam name="TSecond">The type of the second value</typeparam>
      <typeparam name="TThird">The type of the third value</typeparam>
    </member>
    <member name="P:Gallio.Triple`3.First">
      <summary>Gets the first value.</summary>
    </member>
    <member name="P:Gallio.Triple`3.Second">
      <summary>Gets the second value.</summary>
    </member>
    <member name="P:Gallio.Triple`3.Third">
      <summary>Gets the third value.</summary>
    </member>
    <member name="T:Gallio.ICloneable`1">
      <summary>Provides a typed clone operation.</summary>
      <typeparam name="T">The type produced when the object is cloned</typeparam>
    </member>
    <member name="M:Gallio.ICloneable`1.Clone">
      <summary>Clones the object.</summary>
      <returns>The cloned object</returns>
    </member>
    <member name="T:Gallio.Action">
      <summary>An action with no arguments.</summary>
    </member>
    <member name="T:Gallio.Action`2">
      <summary>An action with two arguments.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
    </member>
    <member name="T:Gallio.Action`3">
      <summary>An action with three arguments.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <typeparam name="T3">The third argument type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
      <param name="arg3">The third argument</param>
    </member>
    <member name="T:Gallio.Action`4">
      <summary>An action with four arguments.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <typeparam name="T3">The third argument type</typeparam>
      <typeparam name="T4">The fourth argument type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
      <param name="arg3">The third argument</param>
      <param name="arg4">The fourth argument</param>
    </member>
    <member name="T:Gallio.ActionDecorator`1">
      <summary>Represents a delegate that decorates an action.</summary>
      <typeparam name="T">The type of object the action is performed upon</typeparam>
      <param name="obj">The object to act upon</param>
      <param name="action">The action to decorate which should be called in the middle of applying the decoration</param>
    </member>
    <member name="T:Gallio.ActionDecorator`2">
      <summary>Represents a delegate that decorates an action.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
      <param name="action">The action to decorate which should be called in the middle of applying the decoration</param>
    </member>
    <member name="T:Gallio.Func`1">
      <summary>A function with zero arguments.</summary>
      <typeparam name="TResult">The result type</typeparam>
    </member>
    <member name="T:Gallio.Func`2">
      <summary>A function with one argument.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="TResult">The result type</typeparam>
      <param name="arg1">The first argument</param>
    </member>
    <member name="T:Gallio.Func`3">
      <summary>A function with two arguments.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <typeparam name="TResult">The result type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
    </member>
    <member name="T:Gallio.Func`4">
      <summary>A function with three arguments.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <typeparam name="T3">The third argument type</typeparam>
      <typeparam name="TResult">The result type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
      <param name="arg3">The third argument</param>
    </member>
    <member name="T:Gallio.Func`5">
      <summary>A function with four arguments.</summary>
      <typeparam name="T1">The first argument type</typeparam>
      <typeparam name="T2">The second argument type</typeparam>
      <typeparam name="T3">The third argument type</typeparam>
      <typeparam name="T4">The fourth argument type</typeparam>
      <typeparam name="TResult">The result type</typeparam>
      <param name="arg1">The first argument</param>
      <param name="arg2">The second argument</param>
      <param name="arg3">The third argument</param>
      <param name="arg4">The fourth argument</param>
    </member>
    <member name="T:Gallio.FuncDecorator`2">
      <summary>Represents a delegate that decorates a function.</summary>
      <typeparam name="T">The type of object the function is performed upon</typeparam>
      <typeparam name="TResult">The type of the function result</typeparam>
      <param name="obj">The object to act upon</param>
      <param name="func">The function to decorate which should be called in the middle of applying the decoration</param>
    </member>
    <member name="T:Gallio.Collections.ArrayEqualityComparer`1">
      <summary>Compares arrays for equality by element.</summary>
    </member>
    <member name="F:Gallio.Collections.ArrayEqualityComparer`1.Default">
      <summary>Gets a default instance of the array equality comparer. This field is read-only.</summary>
    </member>
    <member name="T:Gallio.Collections.CollectionUtils">
      <summary>Utility functions for manipulating collections. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Collections.CollectionUtils.ConvertAllToArray``2(System.Collections.ICollection,System.Converter{``0,``1})">
      <summary>Converts all elements of the input collection and returns the collected results as an array of the same size.</summary>
      <typeparam name="TInput">The input type</typeparam>
      <typeparam name="TOutput">The output type</typeparam>
      <param name="input">The input collection</param>
      <param name="converter">The conversion function to apply to each element</param>
      <returns>The output array</returns>
    </member>
    <member name="M:Gallio.Collections.CollectionUtils.Find``1(System.Collections.IEnumerable,System.Predicate{``0})">
      <summary>Returns the first element of the input enumeration for which the specified predicate returns true.</summary>
      <typeparam name="T">The element type</typeparam>
      <param name="enumeration">The input enumeration</param>
      <param name="predicate">The predicate</param>
      <returns>The first matching value or the default for the type if not found</returns>
    </member>
    <member name="M:Gallio.Collections.CollectionUtils.ToArray``1(System.Collections.ICollection)">
      <summary>Copies all of the elements of the input collection to an array.</summary>
      <typeparam name="T">The element type</typeparam>
      <param name="collection">The input collection</param>
      <returns>The output array</returns>
    </member>
    <member name="T:Gallio.Collections.CovariantList`2">
      <summary>A covariant list converts a list of the input type to a read-only list of the more generic output type. The wrapped list can be used to mimic covariance in method return types.</summary>
      <typeparam name="TInput">The input list type</typeparam>
      <typeparam name="TOutput">The output list type</typeparam>
    </member>
    <member name="P:Gallio.Collections.CovariantList`2.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Collections.CovariantList`2.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="M:Gallio.Collections.CovariantList`2.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="T:Gallio.Collections.EmptyArray`1">
      <summary>Provides a singleton empty array instance. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
      <typeparam name="T">The type of array to provide</typeparam>
    </member>
    <member name="F:Gallio.Collections.EmptyArray`1.Instance">
      <summary>An empty array of type <typeparamref name="T" />. This field is read-only.</summary>
    </member>
    <member name="T:Gallio.Collections.EmptyDictionary`2">
      <summary>A read-only empty dictionary.</summary>
      <typeparam name="TKey">The dictionary key type</typeparam>
      <typeparam name="TValue">The dictionary value type</typeparam>
    </member>
    <member name="F:Gallio.Collections.EmptyDictionary`2.Instance">
      <summary>A read-only empty dictionary instance. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Collections.EmptyDictionary`2.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Collections.EmptyDictionary`2.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Collections.EmptyDictionary`2.Item(`0)">
      <summary>Gets or sets the element with the specified key.</summary>
      <param name="key">The key of the element to get or set.</param>
      <value>The element with the specified key.</value>
    </member>
    <member name="P:Gallio.Collections.EmptyDictionary`2.Keys">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="P:Gallio.Collections.EmptyDictionary`2.Values">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="M:Gallio.Collections.EmptyDictionary`2.Add(`0,`1)">
      <summary>Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <param name="key">The object to use as the key of the element to add.</param>
      <param name="value">The object to use as the value of the element to add.</param>
    </member>
    <member name="M:Gallio.Collections.EmptyDictionary`2.Clear">
      <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
    </member>
    <member name="M:Gallio.Collections.EmptyDictionary`2.ContainsKey(`0)">
      <summary>Determines whether the <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the specified key.</summary>
      <param name="key">The key to locate in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</param>
      <returns>true if the <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the key; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.EmptyDictionary`2.GetEnumerator">
      <summary>Returns an enumerator that iterates through a collection.</summary>
      <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Collections.EmptyDictionary`2.Remove(`0)">
      <summary>Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <param name="key">The key of the element to remove.</param>
      <returns>true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
    </member>
    <member name="T:Gallio.Collections.GenericUtils">
      <summary>Utility functions for manipulating generic collections. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.AddAll``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.ICollection{``0})">
      <summary>Adds all elements of the input enumeration to the output collection.</summary>
      <typeparam name="T">The element type</typeparam>
      <param name="input">The input enumeration</param>
      <param name="output">The output collection</param>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ConvertAllToArray``2(System.Collections.Generic.ICollection{``0},System.Converter{``0,``1})">
      <summary>Converts each element of the input collection and returns the collected results as an array of the same size.</summary>
      <typeparam name="TInput">The input type</typeparam>
      <typeparam name="TOutput">The output type</typeparam>
      <param name="input">The input collection</param>
      <param name="converter">The conversion function to apply to each element</param>
      <returns>The output array</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ConvertAndAddAll``2(System.Collections.Generic.ICollection{``0},System.Collections.Generic.ICollection{``1},System.Converter{``0,``1})">
      <summary>Converts each element of the input collection and adds the result to the output collection succession in the same order.</summary>
      <typeparam name="TInput">The input type</typeparam>
      <typeparam name="TOutput">The output type</typeparam>
      <param name="input">The input list</param>
      <param name="output">The output list</param>
      <param name="converter">The conversion function to apply to each element</param>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ConvertAndCopyAll``2(System.Collections.Generic.ICollection{``0},System.Collections.Generic.IList{``1},System.Converter{``0,``1})">
      <summary>Converts each element of the input collection and stores the result in the output list using the same index. The output list must be at least as large as the input list.</summary>
      <typeparam name="TInput">The input type</typeparam>
      <typeparam name="TOutput">The output type</typeparam>
      <param name="input">The input list</param>
      <param name="output">The output list</param>
      <param name="converter">The conversion function to apply to each element</param>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ElementsEqual``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0})">
      <summary>Returns true if the elements of both lists are equal.</summary>
      <param name="a">The first collection</param>
      <param name="b">The second collection</param>
      <returns>True if the elements are equal</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ElementsEqual``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0},Gallio.Func{``0,``0,System.Boolean})">
      <summary>Returns true if the elements of both lists are equal.</summary>
      <param name="a">The first collection</param>
      <param name="b">The second collection</param>
      <param name="comparer">The comparison strategy to use</param>
      <returns>True if the elements are equal</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ElementsEqualOrderIndependent``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0})">
      <summary>Returns true if the elements of both lists are equal but possibly appear in a different order. Handles elements that appear multiple times and ensures that they appear the same number of times in each list.</summary>
      <param name="a">The first collection</param>
      <param name="b">The second collection</param>
      <returns>True if the elements are equal</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.Find``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
      <summary>Returns the first element of the input enumeration for which the specified predicate returns true.</summary>
      <typeparam name="T">The element type</typeparam>
      <param name="enumeration">The input enumeration</param>
      <param name="predicate">The predicate</param>
      <returns>The first matching value or the default for the type if not found</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.KeyValuePairsEqual``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
      <summary>Returns true if both dictionaries have equal key/value pairs.</summary>
      <param name="a">The first collection</param>
      <param name="b">The second collection</param>
      <returns>True if the elements are equal</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ToArray``1(System.Collections.Generic.IEnumerable{``0})">
      <summary>Copies all of the elements of the input enumerable to an array.</summary>
      <typeparam name="T">The element type</typeparam>
      <param name="enumerable">The input enumerable</param>
      <returns>The output array</returns>
    </member>
    <member name="M:Gallio.Collections.GenericUtils.ToArray``1(System.Collections.Generic.ICollection{``0})">
      <summary>Copies all of the elements of the input collection to an array.</summary>
      <typeparam name="T">The element type</typeparam>
      <param name="collection">The input collection</param>
      <returns>The output array</returns>
    </member>
    <member name="T:Gallio.Collections.HashSet`1">
      <summary>A hashtable-based set implementation.</summary>
    </member>
    <member name="P:Gallio.Collections.HashSet`1.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Collections.HashSet`1.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="M:Gallio.Collections.HashSet`1.Add(`0)">
      <summary>Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
    </member>
    <member name="M:Gallio.Collections.HashSet`1.Clear">
      <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
    </member>
    <member name="M:Gallio.Collections.HashSet`1.Contains(`0)">
      <summary>Determines whether the <see cref="T:System.Collections.Generic.ICollection`1" /> contains a specific value.</summary>
      <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
      <returns>true if item is found in the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.HashSet`1.CopyTo(`0[],System.Int32)">
      <summary>Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" nolink="true" /> index.</summary>
      <param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1" />. The <see cref="T:System.Array" nolink="true" /> must have zero-based indexing.</param>
      <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
    </member>
    <member name="M:Gallio.Collections.HashSet`1.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Collections.HashSet`1.Remove(`0)">
      <summary>Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
      <returns>true if item was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false. This method also returns false if item is not found in the original <see cref="T:System.Collections.Generic.ICollection`1" nolink="true" />.</returns>
    </member>
    <member name="T:Gallio.Collections.LazyCache`2">
      <summary>Lazily populates and caches values associated with a particular key.</summary>
    </member>
    <member name="P:Gallio.Collections.LazyCache`2.Item(`0)">
      <summary>Gets the value associated with the specified key. Populates it on demand if not already cached.</summary>
      <param name="key">The key</param>
      <value>The associated value</value>
    </member>
    <member name="T:Gallio.Collections.MultiMap`2">
      <summary>A multi-map allows a list of values to be associated with a single key.</summary>
    </member>
    <member name="P:Gallio.Collections.MultiMap`2.Count">
      <summary>Gets the number of distinct keys in the map.</summary>
    </member>
    <member name="P:Gallio.Collections.MultiMap`2.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Collections.MultiMap`2.Item(`0)">
      <summary>Gets or sets the list of values associated with the specified key. Returns an empty list if there are none.</summary>
      <param name="key">The key</param>
      <value>The list of values</value>
    </member>
    <member name="P:Gallio.Collections.MultiMap`2.Keys">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="P:Gallio.Collections.MultiMap`2.Pairs">
      <summary>Gets the contents of the multi-map as an enumeration of pairs.</summary>
    </member>
    <member name="P:Gallio.Collections.MultiMap`2.Values">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Add(`0,`1)">
      <summary>Adds a value to the list of those associated with a key.</summary>
      <param name="key">The key</param>
      <param name="value">The value to associate</param>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Add(System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}})">
      <summary>Adds all values in the pair to the specified key.</summary>
      <param name="item">The key and values pair</param>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Add(`0,System.Collections.Generic.IList{`1})">
      <summary>Adds all values in the pair to the specified key.</summary>
      <param name="key">The key</param>
      <param name="values">The values</param>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}}})">
      <summary>Adds all of the values from the specified map.</summary>
      <param name="map">The map</param>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
      <summary>Adds all of the values from the specified enumeration of key-value pairs.</summary>
      <param name="pairs">The key-value pairs</param>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Clear">
      <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Contains(`0,`1)">
      <summary>Returns true if the map contains an entry with the specified key and value.</summary>
      <param name="key">The key</param>
      <param name="value">The value to find</param>
      <returns>True if the map contains an entry with the specified key and value</returns>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.ContainsKey(`0)">
      <summary>Returns true if the map contains at least one value associated with the specified key.</summary>
      <param name="key">The key</param>
      <returns>True if there is at least one value associated with the key</returns>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.ReadOnly(Gallio.Collections.IMultiMap{`0,`1})">
      <summary>Obtains a read-only view of another multi-map.</summary>
      <param name="map">The multi-map</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map" /> is null</exception>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Remove(`0)">
      <summary>Removes all values associated with the specified key.</summary>
      <param name="key">The key</param>
      <returns>True if the key existed and was removed</returns>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Remove(`0,`1)">
      <summary>Removes a value from the list of those associated with a key.</summary>
      <param name="key">The key</param>
      <param name="value">The value to remove from the key</param>
      <returns>True if the value was removed</returns>
    </member>
    <member name="M:Gallio.Collections.MultiMap`2.Remove(System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}})">
      <summary>Removes all values in the pair from the specified key.</summary>
      <param name="item">The key and values pair</param>
      <returns>True if at least one value was removed</returns>
    </member>
    <member name="T:Gallio.Collections.PropertyBag">
      <summary>A property bag associates keys with values where each key may have one or more associated value. All keys and values must be non-null strings. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Collections.PropertyBag.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Collections.PropertyBag.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Collections.PropertyBag.Keys">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="P:Gallio.Collections.PropertyBag.Pairs">
      <summary>Gets the contents of the multi-map as an enumeration of pairs.</summary>
    </member>
    <member name="P:Gallio.Collections.PropertyBag.Values">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.AsReadOnly">
      <summary>Gets a read-only view of this property set.</summary>
      <returns>A read-only view</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.Clear">
      <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.Copy">
      <summary>Creates a copy of this property bag.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.Equals(Gallio.Collections.PropertyBag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.GetValue(System.String)">
      <summary>Gets the first value associated with a key.</summary>
      <param name="key">The key</param>
      <returns>The first associated value, or null if none</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
      <summary>Provides the Xml schema for this element.</summary>
      <param name="schemas">The schema set</param>
      <returns>The schema type of the element</returns>
    </member>
    <member name="M:Gallio.Collections.PropertyBag.SetValue(System.String,System.String)">
      <summary>Sets the value associated with a key.</summary>
      <param name="key">The key</param>
      <param name="value">The new value, or null to remove the existing values</param>
    </member>
    <member name="T:Gallio.Collections.PropertySet">
      <summary>A property set associates keys with values where each key may have exactly one associated value. All keys and values must be non-null strings. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Collections.PropertySet.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Collections.PropertySet.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Collections.PropertySet.Keys">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="P:Gallio.Collections.PropertySet.Values">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="M:Gallio.Collections.PropertySet.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
      <summary>Adds all elements of another collection to this dictionary.</summary>
      <param name="collection">The collection to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="collection" /> is null</exception>
    </member>
    <member name="M:Gallio.Collections.PropertySet.AsReadOnly">
      <summary>Gets a read-only view of this property set.</summary>
      <returns>A read-only view</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.Clear">
      <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
    </member>
    <member name="M:Gallio.Collections.PropertySet.Copy">
      <summary>Creates a full copy of this property set.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.Equals(Gallio.Collections.PropertySet)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.GetValue(System.String)">
      <summary>Gets the value associated with a key, or null if absent.</summary>
      <param name="key">The key</param>
      <returns>The associated value, or null if none</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
      <summary>Provides the Xml schema for this element.</summary>
      <param name="schemas">The schema set</param>
      <returns>The schema type of the element</returns>
    </member>
    <member name="M:Gallio.Collections.PropertySet.SetValue(System.String,System.String)">
      <summary>Sets the value associated with a key, removes an existing value if null.</summary>
      <param name="key">The key</param>
      <param name="value">The new value, or null to remove the existing value</param>
    </member>
    <member name="T:Gallio.Collections.ReadOnlyDictionary`2">
      <summary>A read-only dictionary wrapper.</summary>
    </member>
    <member name="P:Gallio.Collections.ReadOnlyDictionary`2.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Collections.ReadOnlyDictionary`2.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Collections.ReadOnlyDictionary`2.Item(`0)">
      <summary>Gets or sets the element with the specified key.</summary>
      <param name="key">The key of the element to get or set.</param>
      <value>The element with the specified key.</value>
    </member>
    <member name="P:Gallio.Collections.ReadOnlyDictionary`2.Keys">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="P:Gallio.Collections.ReadOnlyDictionary`2.Values">
      <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <value>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</value>
    </member>
    <member name="M:Gallio.Collections.ReadOnlyDictionary`2.Add(`0,`1)">
      <summary>Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <param name="key">The object to use as the key of the element to add.</param>
      <param name="value">The object to use as the value of the element to add.</param>
    </member>
    <member name="M:Gallio.Collections.ReadOnlyDictionary`2.Clear">
      <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
    </member>
    <member name="M:Gallio.Collections.ReadOnlyDictionary`2.ContainsKey(`0)">
      <summary>Determines whether the <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the specified key.</summary>
      <param name="key">The key to locate in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</param>
      <returns>true if the <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the key; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.ReadOnlyDictionary`2.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Collections.ReadOnlyDictionary`2.Remove(`0)">
      <summary>Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
      <param name="key">The key of the element to remove.</param>
      <returns>true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
    </member>
    <member name="T:Gallio.Collections.ReferentialEqualityComparer`1">
      <summary>An equality comparer that compares values by reference. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
      <typeparam name="T">The type of values to compare, must be reference types</typeparam>
    </member>
    <member name="P:Gallio.Collections.ReferentialEqualityComparer`1.Instance">
      <summary>Gets the singleton instance of the comparer.</summary>
    </member>
    <member name="M:Gallio.Collections.ReferentialEqualityComparer`1.Equals(`0,`0)">
      <summary>Determines whether the specified objects are equal.</summary>
      <param name="x">The first object of type T to compare.</param>
      <param name="y">The second object of type T to compare.</param>
      <returns>true if the specified objects are equal; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Collections.ReferentialEqualityComparer`1.GetHashCode(`0)">
      <summary>Returns a hash code for the specified object.</summary>
      <param name="obj">The <see cref="T:System.Object" /> for which a hash code is to be returned.</param>
      <returns>A hash code for the specified object.</returns>
    </member>
    <member name="T:Gallio.Collections.TreeUtils">
      <summary>Provides functions for manipulating ad-hoc trees. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="T:Gallio.Collections.UserDataCollection">
      <summary>
        <para> A user data collection stores arbitrary key/value pairs that may be associated with other objects in the system. </para>
        <para> Accesses to the collection are synchronized during access. To safely manupulate multiple keys at one time, simply lock the <see cref="T:Gallio.Collections.UserDataCollection" /> for the duration of the operation. </para>
      </summary>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.Copy">
      <summary>Creates a copy of the collection.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.GetValue``1(Gallio.Collections.Key{``0})">
      <summary>Gets a value from the collection.</summary>
      <typeparam name="T">The value type</typeparam>
      <param name="key">The key</param>
      <returns>The associated value</returns>
      <exception cref="T:System.Collections.Generic.KeyNotFoundException">Thrown if <paramref name="key" /> was not found.</exception>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.GetValueOrDefault``1(Gallio.Collections.Key{``0},``0)">
      <summary>Gets a value from the collection or a default value if none found.</summary>
      <typeparam name="T">The value type</typeparam>
      <param name="key">The key</param>
      <param name="defaultValue">The default value</param>
      <returns>The associated value, or the default value</returns>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.HasValue``1(Gallio.Collections.Key{``0})">
      <summary>Determines whether a key has an associated value in the collection.</summary>
      <typeparam name="T">The value type</typeparam>
      <param name="key">The key</param>
      <returns>True if the key has an associated value</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key" /> is null</exception>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.RemoveValue``1(Gallio.Collections.Key{``0})">
      <summary>Removes a value from the collection.</summary>
      <typeparam name="T">The value type</typeparam>
      <param name="key">The key</param>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.SetValue``1(Gallio.Collections.Key{``0},``0)">
      <summary>Sets a value in the collection.</summary>
      <typeparam name="T">The value type</typeparam>
      <param name="key">The key</param>
      <param name="value">The value to set</param>
    </member>
    <member name="M:Gallio.Collections.UserDataCollection.TryGetValue``1(Gallio.Collections.Key{``0},``0@)">
      <summary>Tries to get a value from the collection.</summary>
      <typeparam name="T">The value type</typeparam>
      <param name="key">The key</param>
      <param name="value">Set to the value, or <c>default(T)</c> if none present</param>
      <returns>True if a value was obtained</returns>
    </member>
    <member name="T:Gallio.Collections.Key`1">
      <summary>A strongly-typed key to be used together with an associative array to help the compiler perform better type checking of the value associated with the key.</summary>
      <typeparam name="TValue">The type of value associated with the key</typeparam>
    </member>
    <member name="P:Gallio.Collections.Key`1.Name">
      <summary>Gets the unique name of the key.</summary>
    </member>
    <member name="T:Gallio.Collections.IMultiMap`2">
      <summary>A multi-map allows a list of values to be associated with a single key.</summary>
    </member>
    <member name="P:Gallio.Collections.IMultiMap`2.Pairs">
      <summary>Gets the contents of the multi-map as an enumeration of pairs.</summary>
    </member>
    <member name="M:Gallio.Collections.IMultiMap`2.Add(`0,`1)">
      <summary>Adds a value to the list of those associated with a key.</summary>
      <param name="key">The key</param>
      <param name="value">The value to associate</param>
    </member>
    <member name="M:Gallio.Collections.IMultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}}})">
      <summary>Adds all of the values from the specified map.</summary>
      <param name="map">The map</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map" /> is null</exception>
    </member>
    <member name="M:Gallio.Collections.IMultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
      <summary>Adds all of the values from the specified enumeration of key-value pairs.</summary>
      <param name="pairs">The key-value pairs</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pairs" /> is null</exception>
    </member>
    <member name="M:Gallio.Collections.IMultiMap`2.Contains(`0,`1)">
      <summary>Returns true if the map contains an entry with the specified key and value.</summary>
      <param name="key">The key</param>
      <param name="value">The value to find</param>
      <returns>True if the map contains an entry with the specified key and value</returns>
    </member>
    <member name="M:Gallio.Collections.IMultiMap`2.Remove(`0,`1)">
      <summary>Removes a value from the list of those associated with a key.</summary>
      <param name="key">The key</param>
      <param name="value">The value to remove from the key</param>
      <returns>True if the value was removed</returns>
    </member>
    <member name="T:Gallio.Collections.TreeUtils.ChildEnumerator`1">
      <summary>Enumerates child nodes in a tree.</summary>
      <param name="node">The node</param>
    </member>
    <member name="T:Gallio.Concurrency.ProcessTask">
      <summary>
        <para> A process task provides support for launching external processes and collecting their output. </para>
        <para> The process task provides a guarnatee that when you call <see cref="M:Gallio.Concurrency.Task.Join(System.Nullable{System.TimeSpan})" /> all redirected output from the console output and error streams will already have been captured and delivered to the event handlers, as appropriate. </para>
      </summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.Arguments">
      <summary>Gets the arguments.</summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.CaptureConsoleError">
      <summary>
        <para> Gets or sets whether console error stream of the process should be captured and made available via the <see cref="P:Gallio.Concurrency.ProcessTask.ConsoleError" /> property. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.CaptureConsoleOutput">
      <summary>
        <para> Gets or sets whether console output stream of the process should be captured and made available via the <see cref="P:Gallio.Concurrency.ProcessTask.ConsoleOutput" /> property. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.ConsoleError">
      <summary>Gets the captured contents of the console error stream written by the process.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the process has not been started or if <see cref="P:Gallio.Concurrency.ProcessTask.CaptureConsoleError" /> is <c>null</c></exception>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.ConsoleOutput">
      <summary>Gets the captured contents of the console output stream written by the process.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the process has not been started or if <see cref="P:Gallio.Concurrency.ProcessTask.CaptureConsoleOutput" /> is <c>null</c></exception>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.CreateWindow">
      <summary>
        <para> Gets or sets whether to create a window for the command prompt. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.ExecutablePath">
      <summary>Gets the executable path.</summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.ExitCode">
      <summary>Gets the exit code of the process, or -1 if the process did not run or has not exited.</summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.ExitCodeDescription">
      <summary>Gets a description of the exit code, if available, or null otherwise.</summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.Process">
      <summary>Gets the <see cref="P:Gallio.Concurrency.ProcessTask.Process" /> that was started or null if the process has not been started yet.</summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.UseShellExecute">
      <summary>
        <para> Gets or sets whether to execute the command with the Windows shell. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Concurrency.ProcessTask.WorkingDirectory">
      <summary>Gets the working directory path.</summary>
    </member>
    <member name="M:Gallio.Concurrency.ProcessTask.AbortImpl">
      <summary>Aborts the task.</summary>
    </member>
    <member name="M:Gallio.Concurrency.ProcessTask.JoinImpl(System.Nullable{System.TimeSpan})">
      <summary>Waits for the task to terminate.</summary>
      <param name="timeout">The timeout, or null to wait indefinitely</param>
      <returns>True if the task is not running as of the time this method exits, false if a timeout occurred while waiting</returns>
    </member>
    <member name="M:Gallio.Concurrency.ProcessTask.StartImpl">
      <summary>Starts the task.</summary>
    </member>
    <member name="M:Gallio.Concurrency.ProcessTask.StartProcess(System.Diagnostics.ProcessStartInfo)">
      <summary>Starts a <see cref="P:Gallio.Concurrency.ProcessTask.Process" />.</summary>
      <param name="startInfo">The <see cref="T:System.Diagnostics.ProcessStartInfo" /> that has been started</param>
      <returns>The process</returns>
    </member>
    <member name="E:Gallio.Concurrency.ProcessTask.ConsoleErrorDataReceived">
      <summary>The event fired when each line of new output is received on the console error stream.</summary>
    </member>
    <member name="E:Gallio.Concurrency.ProcessTask.ConsoleOutputDataReceived">
      <summary>The event fired when each line of new output is received on the console output stream.</summary>
    </member>
    <member name="T:Gallio.Concurrency.Task">
      <summary>
        <para> A task represents a concurrently executing operation. </para>
        <para> A <see cref="T:Gallio.Concurrency.Task" /> might not necessarily represent an operation that is executing in a local <see cref="T:System.Threading.Thread" />. It can represent other processes that execute remotely or that are represented by some other mechanism. </para>
        <para> A <see cref="T:Gallio.Concurrency.Task" nolink="true" /> is guaranteed to send events in the following order: <see cref="E:Gallio.Concurrency.Task.Started" />, <see cref="E:Gallio.Concurrency.Task.Aborted" /> (if applicable), <see cref="E:Gallio.Concurrency.Task.Terminated" />. The events are dispatched synchronously such that the next event in the sequence will not be fired until the previous event is completely processed. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Concurrency.Task.IsAborted">
      <summary>Returns true if the task has been aborted.</summary>
    </member>
    <member name="P:Gallio.Concurrency.Task.IsPending">
      <summary>Returns true if the task has not been started or aborted yet.</summary>
    </member>
    <member name="P:Gallio.Concurrency.Task.IsRunning">
      <summary>Returns true if the task is running.</summary>
    </member>
    <member name="P:Gallio.Concurrency.Task.IsTerminated">
      <summary>Returns true if the task ran and was terminated.</summary>
    </member>
    <member name="P:Gallio.Concurrency.Task.Name">
      <summary>Gets the name of the task.</summary>
    </member>
    <member name="P:Gallio.Concurrency.Task.Result">
      <summary>Gets the task result, or null if the task has not terminated or was aborted before starting.</summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.Abort">
      <summary>
        <para> Asynchronously aborts the task. </para>
        <para> If the task has not been started, then the task will be forbidden from starting later and its <see cref="P:Gallio.Concurrency.Task.IsAborted" /> property will be set. If the task has already terminated, then does nothing. </para>
      </summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.AbortImpl">
      <summary>Aborts the task.</summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.Join(System.Nullable{System.TimeSpan})">
      <summary>
        <para> Waits for the task to terminate. </para>
        <para> Does nothing if the task has not been started or is not running. </para>
      </summary>
      <param name="timeout">The maximum amount of time to wait for completion, or null to wait indefinitely</param>
      <returns>True if the task is not running as of the time this method exits, false if a timeout occurred while waiting</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> represents a negative time span</exception>
    </member>
    <member name="M:Gallio.Concurrency.Task.JoinImpl(System.Nullable{System.TimeSpan})">
      <summary>Waits for the task to terminate.</summary>
      <param name="timeout">The timeout, or null to wait indefinitely</param>
      <returns>True if the task is not running as of the time this method exits, false if a timeout occurred while waiting</returns>
    </member>
    <member name="M:Gallio.Concurrency.Task.NotifyTerminated(Gallio.Concurrency.TaskResult)">
      <summary>Dispatches notification that the task has terminated and provides its result.</summary>
      <param name="result">The task result</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="result" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the task is not currently running</exception>
    </member>
    <member name="M:Gallio.Concurrency.Task.OnAborted">
      <summary>Notifies the <see cref="E:Gallio.Concurrency.Task.Aborted" /> event handlers.</summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.OnStarted">
      <summary>Notifies the <see cref="E:Gallio.Concurrency.Task.Started" /> event handlers.</summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.OnTerminated">
      <summary>Notifies the <see cref="E:Gallio.Concurrency.Task.Terminated" /> event handlers.</summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.Run(System.Nullable{System.TimeSpan})">
      <summary>Starts the task and waits for it to complete until the timeout expires. If the timeout expires, aborts the task and returns <c>false</c>.</summary>
      <param name="timeout">The maximum amount of time to wait for completion, or null to wait indefinitely</param>
      <returns>True if the task ran to completion within the specified time span, false if the task was aborted</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> represents a negative time span</exception>
    </member>
    <member name="M:Gallio.Concurrency.Task.Start">
      <summary>
        <para> Starts running the task. </para>
        <para> Does nothing if the task has already been started or has been aborted. </para>
      </summary>
    </member>
    <member name="M:Gallio.Concurrency.Task.StartImpl">
      <summary>Starts the task.</summary>
    </member>
    <member name="E:Gallio.Concurrency.Task.Aborted">
      <summary>Adds or removes an event handler that is signaled when the task is aborted. If a handler is being added and the task has already aborted, it is immediately invoked.</summary>
    </member>
    <member name="E:Gallio.Concurrency.Task.Started">
      <summary>Adds or removes an event handler that is signaled when the task is started. If a handler is being added and the task has already started, it is immediately invoked.</summary>
    </member>
    <member name="E:Gallio.Concurrency.Task.Terminated">
      <summary>Adds or removes an event handler that is signaled when the task is terminated. If a handler is being added and the task has already terminated, it is immediately invoked.</summary>
    </member>
    <member name="T:Gallio.Concurrency.TaskContainer">
      <summary>
        <para> A <see cref="T:Gallio.Concurrency.TaskContainer" /> manages the lifecycle of any number of <see cref="T:Gallio.Concurrency.Task" />s and monitors their run-time behavior. </para>
        <para> For example, when a <see cref="T:Gallio.Concurrency.Task" nolink="true" /> terminates abruptly due to an exception, its container will send out a notification that may cause all of the other tasks to be aborted and for the currently executing test case to fail. </para>
      </summary>
    </member>
    <member name="M:Gallio.Concurrency.TaskContainer.AbortAll">
      <summary>Asynchronously aborts all of the tasks currently running within the container.</summary>
    </member>
    <member name="M:Gallio.Concurrency.TaskContainer.GetActiveTasks">
      <summary>Gets the list of all tasks that are currently running.</summary>
      <returns>The list of running tasks</returns>
    </member>
    <member name="M:Gallio.Concurrency.TaskContainer.JoinAll(System.Nullable{System.TimeSpan})">
      <summary>Waits for all of currently running tasks to terminate.</summary>
      <param name="timeout">The maximum amount of time to wait for completion, or null to wait indefinitely</param>
      <returns>True if no tasks are running as of the time this method exits, false if a timeout occurred while waiting</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> represents a negative time span</exception>
    </member>
    <member name="M:Gallio.Concurrency.TaskContainer.Watch(Gallio.Concurrency.Task)">
      <summary>Adds a new task for this container to watch.</summary>
      <param name="task">The task to monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="task" /> is null</exception>
    </member>
    <member name="E:Gallio.Concurrency.TaskContainer.TaskAborted">
      <summary>Adds or removes an event handler that is signaled when any watched task is aborted.</summary>
    </member>
    <member name="E:Gallio.Concurrency.TaskContainer.TaskStarted">
      <summary>Adds or removes an event handler that is signaled when any watched task is started.</summary>
    </member>
    <member name="E:Gallio.Concurrency.TaskContainer.TaskTerminated">
      <summary>Adds or removes an event handler that is signaled when any watched task is terminated.</summary>
    </member>
    <member name="T:Gallio.Concurrency.TaskEventArgs">
      <summary>A task-related event.</summary>
    </member>
    <member name="P:Gallio.Concurrency.TaskEventArgs.Task">
      <summary>Gets the task that the event is about.</summary>
    </member>
    <member name="T:Gallio.Concurrency.TaskResult">
      <summary>Holds the result of executing a task. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Concurrency.TaskResult.Exception">
      <summary>Gets the exception that was encountered by the task and caused it to terminated, or null if no exception was thrown.</summary>
    </member>
    <member name="P:Gallio.Concurrency.TaskResult.Value">
      <summary>Gets the value yielded by the task when it terminated, or null if an exception was thrown.</summary>
    </member>
    <member name="M:Gallio.Concurrency.TaskResult.CreateFromException(System.Exception)">
      <summary>Creates a task result that contains the specified exception that was encountered by the task and caused it to terminate.</summary>
      <param name="exception">The exception</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Concurrency.TaskResult.CreateFromValue(System.Object)">
      <summary>Creates a task result that contains the specified value yielded by the task when it terminated.</summary>
      <param name="value">The value</param>
    </member>
    <member name="M:Gallio.Concurrency.TaskResult.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Concurrency.ThreadAbortScope">
      <summary>
        <para> A <see cref="T:Gallio.Concurrency.ThreadAbortScope" /> executes a block of code inside a special scope that is designed to issue and safely handle <see cref="M:System.Threading.Thread.Abort(System.Object)" /> on demand. </para>
        <para> This class may be used as a primitive for implementing higher-level protected scopes for the purpose of asynchronous cancelation and time-limited execution. </para>
      </summary>
    </member>
    <member name="M:Gallio.Concurrency.ThreadAbortScope.Abort">
      <summary>Aborts the currently running action and prevents any further actions from running inside of this scope.</summary>
    </member>
    <member name="M:Gallio.Concurrency.ThreadAbortScope.Protect(Gallio.Action)">
      <summary>Runs an action inside of a protected context wherein it cannot receive a thread abort from this <see cref="T:Gallio.Concurrency.ThreadAbortScope" />.</summary>
      <param name="action">The action to run</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Concurrency.ThreadAbortScope.Run(Gallio.Action)">
      <summary>Runs an action inside of the scope.</summary>
      <param name="action">The action to run</param>
      <returns>The <see cref="T:System.Threading.ThreadAbortException" /> that was caught if the action was aborted, or null if the action completed normally</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if an action is already running in this scope</exception>
      <exception cref="T:System.Exception">Any other exception thrown by <paramref name="action" /> itself</exception>
    </member>
    <member name="T:Gallio.Concurrency.ThreadTask">
      <summary>An implementation of <see cref="T:Gallio.Concurrency.Task" /> based on a locally running thread.</summary>
    </member>
    <member name="P:Gallio.Concurrency.ThreadTask.ApartmentState">
      <summary>Gets or sets the desired <see cref="P:Gallio.Concurrency.ThreadTask.ApartmentState" /> to use for the thread when it is started.</summary>
      <value>The default value is <see cref="F:System.Threading.ApartmentState.Unknown" /> which causes the new thread to use the runtime's default apartment state.</value>
      <exception cref="T:System.InvalidOperationException">Thrown if this method is called after the thread has started</exception>
    </member>
    <member name="P:Gallio.Concurrency.ThreadTask.Thread">
      <summary>Gets the thread on which the task is running, or null if the task is not running.</summary>
    </member>
    <member name="M:Gallio.Concurrency.ThreadTask.AbortImpl">
      <summary>Aborts the task.</summary>
    </member>
    <member name="M:Gallio.Concurrency.ThreadTask.JoinImpl(System.Nullable{System.TimeSpan})">
      <summary>Waits for the task to terminate.</summary>
      <param name="timeout">The timeout, or null to wait indefinitely</param>
      <returns>True if the task is not running as of the time this method exits, false if a timeout occurred while waiting</returns>
    </member>
    <member name="M:Gallio.Concurrency.ThreadTask.StartImpl">
      <summary>Starts the task.</summary>
    </member>
    <member name="T:Gallio.Concurrency.LockBox`1">
      <summary>
        <para> A lock box object provides protected read / write access to a shared object that may be accessed concurrently by multiple threads. </para>
        <para> Clients are expected to use the <see cref="M:Gallio.Concurrency.LockBox`1.Read(Gallio.Concurrency.ReadAction{`0})" /> and <see cref="M:Gallio.Concurrency.LockBox`1.Write(Gallio.Concurrency.WriteAction{`0})" /> methods to acquire and release a lock of the appropriate type prior to manipulating the contents. </para>
      </summary>
      <typeparam name="T">The type of object inside the lock box</typeparam>
    </member>
    <member name="M:Gallio.Concurrency.LockBox`1.Read(Gallio.Concurrency.ReadAction{`0})">
      <summary>Acquires a read lock and invokes the action with the object inside the lock box.</summary>
      <param name="action">The action to invoke</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Concurrency.LockBox`1.Write(Gallio.Concurrency.WriteAction{`0})">
      <summary>Acquires a write lock and invokes the action with the object inside the lock box.</summary>
      <param name="action">The action to invoke</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="T:Gallio.Concurrency.ReadAction`1">
      <summary>An action that reads the contents of an object. It should not modify the object in any way.</summary>
      <typeparam name="T">The type of object</typeparam>
      <param name="obj">The object</param>
    </member>
    <member name="T:Gallio.Concurrency.WriteAction`1">
      <summary>An action that reads or writes the contents of an object.</summary>
      <typeparam name="T">The type of object</typeparam>
      <param name="obj">The object</param>
    </member>
    <member name="T:Gallio.Framework.ComparisonSemantics">
      <summary>
        <para> Describes the semantics of how objects should be compared. </para>
        <para> This class encapsulates a default set of rules for comparing objects. These rules may be used as the foundation of a suite of standard assertion functions for comparing identity, equality and relations. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.ComparisonSemantics.ApproximatelyEqual``2(``0,``0,``1)">
      <summary>Returns true if two values are equal to within a specified delta.</summary>
      <typeparam name="TValue">The type of values to be compared</typeparam>
      <typeparam name="TDifference">The type of the difference produced when the values are subtracted, for numeric types this is the same as <typeparamref name="TValue" /> but it may differ for other types</typeparam>
      <param name="left">The expected value</param>
      <param name="right">The actual value</param>
      <param name="delta">The inclusive delta between the values</param>
      <returns>True if the values are approximately equal</returns>
    </member>
    <member name="M:Gallio.Framework.ComparisonSemantics.Compare``1(``0,``0)">
      <summary>Compares two objects.</summary>
      <typeparam name="T">The object type</typeparam>
      <param name="left">The left object, may be null</param>
      <param name="right">The right object, may be null</param>
      <returns>A value less than zero if the left object if less than the right object, zero if the left and right objects are equal, or greater than zero if the left object is greater than the right object</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the values cannot be ordered.</exception>
    </member>
    <member name="M:Gallio.Framework.ComparisonSemantics.Equals(System.Object,System.Object)">
      <summary>Returns true if two objects are equal.</summary>
      <param name="left">The left object, may be null</param>
      <param name="right">The right object, may be null</param>
      <returns>True if the objects are equal</returns>
    </member>
    <member name="M:Gallio.Framework.ComparisonSemantics.Equals``1(``0,``0)">
      <summary>Returns true if two objects are equal.</summary>
      <typeparam name="T">The object type</typeparam>
      <param name="left">The left object, may be null</param>
      <param name="right">The right object, may be null</param>
      <returns>True if the objects are equal</returns>
    </member>
    <member name="M:Gallio.Framework.ComparisonSemantics.IsSimpleEnumerableType(System.Type)">
      <summary>Returns true if the specified type is a simple enumerable type. A simple enumerable type is one that that does not override <see cref="M:System.Object.Equals(System.Object)" />.</summary>
      <param name="type">The object type</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.ComparisonSemantics.Same``1(``0,``0)">
      <summary>Returns true if two objects are the same.</summary>
      <typeparam name="T">The object type, which must be a reference type (class) since a value type (struct) has no concept of referential identity.</typeparam>
      <param name="left">The left object, may be null</param>
      <param name="right">The right object, may be null</param>
      <returns>True if both objects are the same</returns>
    </member>
    <member name="T:Gallio.Framework.DiagnosticLog">
      <summary>The diagnostic log provides services for writing diagnostic messages to the console or runtime log during a test run. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.DiagnosticLog.WriteLine(System.String)">
      <summary>Writes a message to the diagnostic log.</summary>
      <param name="message">The message to write, may be null</param>
    </member>
    <member name="M:Gallio.Framework.DiagnosticLog.WriteLine(System.String,System.Object[])">
      <summary>Writes a formatted message to the diagnostic log.</summary>
      <param name="messageFormat">The message format string, may be null</param>
      <param name="messageArgs">The message arguments</param>
    </member>
    <member name="T:Gallio.Framework.Sandbox">
      <summary>
        <para> A sandbox is an isolated environments for executing test actions. It provides the ability to abort actions in progress so that the test runner can proceed to run other actions. </para>
        <para> Sandboxes are hierarchically structured. When an outer sandbox is aborted, all of its inner sandboxes are likewise aborted. A sandbox also provides the ability to create new child sandboxes at will so that test actions can be isolated with fine granularity. </para>This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Sandbox.AbortMessage">
      <summary>Gets a message that will be logged when the sandbox is aborted, or null if none.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="P:Gallio.Framework.Sandbox.AbortOutcome">
      <summary>Returns the <see cref="T:Gallio.Model.TestOutcome" /> passed to <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)" />, or null if <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)" nolink="true" /> has not been called.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="P:Gallio.Framework.Sandbox.WasAborted">
      <summary>Returns true if <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)" /> was called.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)">
      <summary>
        <para> Aborts all actions in progress within this context. </para>
        <para> The abort is persistent and cannot be reverted. Therefore once aborted, no further test actions will be permitted to run. Subsequent calls to <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)" /> will have no effect. </para>
      </summary>
      <param name="outcome">The outcome to be returned from aborted actions</param>
      <param name="message">A message to be logged when the action is aborted, or null if none</param>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="M:Gallio.Framework.Sandbox.CreateChild">
      <summary>
        <para> Creates a child sandbox. </para>
        <para> When the parent sandbox is aborted, the child will likewise be aborted. This policy offers a mechanism to scope actions recursively. </para>
      </summary>
      <returns>The child sandbox</returns>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="M:Gallio.Framework.Sandbox.Dispose">
      <summary>
        <para> Disposes the sandbox. </para>
        <para> All currently executing actions are aborted with <see cref="P:Gallio.Model.TestOutcome.Error" /> if <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)" /> has not already been called. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Sandbox.Protect(Gallio.Action)">
      <summary>Runs an action inside of a protected context wherein it cannot receive a thread abort from this <see cref="T:Gallio.Framework.Sandbox" />.</summary>
      <param name="action">The action to run</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Sandbox.Run(Gallio.Model.Logging.TestLogWriter,Gallio.Action,System.String)">
      <summary>Runs a test action.</summary>
      <param name="testLogWriter">The log writer for reporting failures</param>
      <param name="action">The action to run</param>
      <param name="description">A description of the action being performed, to be used as a log section name when reporting failures, or null if none</param>
      <returns>The outcome of the action</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testLogWriter" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="M:Gallio.Framework.Sandbox.UseTimeout(System.Nullable{System.TimeSpan},Gallio.Action)">
      <summary>Uses a specified timeout for all actions run within a block of code.</summary>
      <param name="timeout">The execution timeout or null if none</param>
      <param name="action">The action to perform, protected by the timeout</param>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="E:Gallio.Framework.Sandbox.Aborted">
      <summary>
        <para> An event that is dispatched when <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)" /> is called. </para>
        <para> If the sandbox has already been aborted then the event handler is immediately invoked. </para>
      </summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed</exception>
    </member>
    <member name="T:Gallio.Framework.SilentTestException">
      <summary>This exception type is used to signal a test outcome silently without logging the exception.</summary>
    </member>
    <member name="P:Gallio.Framework.SilentTestException.ExcludeStackTrace">
      <summary>Returns true if the outcome and message (if any) should be used but the exception stack trace should not be logged.</summary>
    </member>
    <member name="T:Gallio.Framework.Tasks">
      <summary>
        <para> The tasks class provides a mechanism for coordinating the actions of multiple tasks within a test case. </para>
        <para> Each task started by a test case is monitored. When the test exits, any remaining tasks are automatically aborted and disposed. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Tasks.TaskContainer">
      <summary>Gets the task container for the current <see cref="T:Gallio.Framework.TestContext" />.</summary>
    </member>
    <member name="M:Gallio.Framework.Tasks.CreateProcessTask(System.String,System.String,System.String)">
      <summary>
        <para> Creates a new process task but does not start it. </para>
        <para> The output of the process will be logged and included as part of the test results. It may also be examined using the <see cref="P:Gallio.Concurrency.ProcessTask.ConsoleOutput" /> and <see cref="P:Gallio.Concurrency.ProcessTask.ConsoleError" /> properties while the process executes and after it terminates. </para>
      </summary>
      <param name="executablePath">The path of the executable executable</param>
      <param name="arguments">The arguments for the executable</param>
      <param name="workingDirectory">The working directory</param>
      <returns>The new thread task</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath" />, <paramref name="arguments" /> or <paramref name="workingDirectory" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Tasks.CreateThreadTask(System.String,Gallio.Action)">
      <summary>Creates a new thread task but does not start it.</summary>
      <param name="name">The name of the task, or null to create a new name based on the method associated with the action</param>
      <param name="action">The action to perform</param>
      <returns>The new thread task</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Tasks.JoinAndVerify(System.TimeSpan)">
      <summary>Waits for all tasks to complete or for timeout to occur. Then verifies that no failures have occurred in any of the tasks.</summary>
      <param name="timeout">The timeout</param>
      <exception cref="T:Gallio.Framework.TestException">Thrown if some of the tasks did not complete or if any of the tasks failed</exception>
    </member>
    <member name="M:Gallio.Framework.Tasks.StartProcessTask(System.String,System.String,System.String)">
      <summary>
        <para> Starts a new process and begins watching it. </para>
        <para> The output of the process will be logged and included as part of the test results. It may also be examined using the <see cref="P:Gallio.Concurrency.ProcessTask.ConsoleOutput" /> and <see cref="P:Gallio.Concurrency.ProcessTask.ConsoleError" /> properties while the process executes and after it terminates. </para>
      </summary>
      <param name="executablePath">The path of the executable executable</param>
      <param name="arguments">The arguments for the executable</param>
      <param name="workingDirectory">The working directory</param>
      <returns>The new thread task</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath" />, <paramref name="arguments" /> or <paramref name="workingDirectory" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Tasks.StartThreadTask(System.String,Gallio.Action)">
      <summary>Starts a new thread task.</summary>
      <param name="name">The name of the task, or null to create a new name based on the method associated with the action</param>
      <param name="action">The action to perform</param>
      <returns>The new thread task</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Tasks.Verify">
      <summary>Verifies that no failures have occurred in any of the tasks.</summary>
      <exception cref="T:Gallio.Framework.TestException">Thrown if any of the tasks failed</exception>
    </member>
    <member name="M:Gallio.Framework.Tasks.WatchTask(Gallio.Concurrency.Task)">
      <summary>Adds a new task for the task manager to watch.</summary>
      <param name="task">The task to watch</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="task" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.TestContext">
      <summary>
        <para> The test context provides information about the environment in which a test is executing. A new context is created each time a test or test step begins execution. </para>
        <para> Test contexts are arranged in a hierarchy that corresponds to the order in which the contexts were entered. Thus the context for a test likely has as its parent the context for its containing test fixture. </para>
        <para> Arbitrary user data can be associated with a test context. Furthermore, client code may attach <see cref="E:Gallio.Framework.TestContext.Finishing" /> event handlers to perform resource reclamation just prior to marking the test step as finished. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.AssertCount">
      <summary>Gets the current assertion count.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.CurrentContext">
      <summary>Gets the context of the current thread, or null if there is no current context.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.Data">
      <summary>Gets the user data collection associated with the context. It may be used to associate arbitrary key/value pairs with the context.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.GlobalContext">
      <summary>Gets the global context of the environment, or null if there is no such context.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.IsFinished">
      <summary>Returns true if the step associated with the context has finished execution and completed all <see cref="E:Gallio.Framework.TestContext.Finishing" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.LifecyclePhase">
      <summary>Gets or sets the lifecycle phase the context is in.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Framework.TestContext.LogWriter">
      <summary>
        <para> Gets the log writer for this context. </para>
        <para> Each test step gets its own log writer that is distinct from those of other steps. So the log writer returned by this property is particular to the step represented by this test context. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.Outcome">
      <summary>
        <para> Gets the step's outcome or its interim outcome if the test is still running. </para>
        <para> The value of this property is initially <see cref="P:Gallio.Model.TestOutcome.Passed" /> but may change over the course of execution to reflect the anticipated outcome of the test. When the test finishes, its outcome is frozen. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.Parent">
      <summary>Gets the parent context or null if this context has no parent.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.Sandbox">
      <summary>Gets the sandbox of the test step, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.Test">
      <summary>Gets the test associated with the context.</summary>
    </member>
    <member name="P:Gallio.Framework.TestContext.TestStep">
      <summary>Gets the test step associated with the context.</summary>
    </member>
    <member name="M:Gallio.Framework.TestContext.AddAssertCount(System.Int32)">
      <summary>Adds the specified amount to the assert count atomically.</summary>
      <param name="value">The amount to add to the assert count</param>
    </member>
    <member name="M:Gallio.Framework.TestContext.AddMetadata(System.String,System.String)">
      <summary>Adds metadata to the step that is running in the context.</summary>
      <param name="metadataKey">The metadata key</param>
      <param name="metadataValue">The metadata value</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="metadataKey" /> or <paramref name="metadataValue" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestContext.Enter">
      <summary>Enters this context with the current thread.</summary>
      <returns>A cookie that can be used to restore the current thread's context to its previous value</returns>
    </member>
    <member name="M:Gallio.Framework.TestContext.EnterContext(Gallio.Framework.TestContext)">
      <summary>Enters the specified context with the current thread.</summary>
      <param name="context">The context to enter, or null to enter a scope without a context</param>
      <returns>A cookie that can be used to restore the current thread's context to its previous value</returns>
    </member>
    <member name="M:Gallio.Framework.TestContext.GetThreadDefaultContext(System.Threading.Thread)">
      <summary>Gets the default context for the specified thread.</summary>
      <param name="thread">The thread</param>
      <returns>The default context</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestContext.IncrementAssertCount">
      <summary>Increments the assert count atomically.</summary>
    </member>
    <member name="M:Gallio.Framework.TestContext.RunStep(System.String,Gallio.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Reflection.ICodeElementInfo)">
      <summary>Performs an action as a new step within the current context and associates it with the specified code reference. Does not verify the outcome of the step.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="timeout">The step execution timeout, or null if none</param>
      <param name="isTestCase">True if the step represents an independent test case</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
    </member>
    <member name="M:Gallio.Framework.TestContext.RunStepAndVerifyOutcome(System.String,Gallio.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Reflection.ICodeElementInfo,Gallio.Model.TestOutcome)">
      <summary>Performs an action as a new step within the current context and associates it with the specified code reference. Verifies that the step produced the expected outcome.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="timeout">The step execution timeout, or null if none</param>
      <param name="isTestCase">True if the step represents an independent test case</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="expectedOutcome">The expected outcome of the step</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
      <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained</exception>
    </member>
    <member name="M:Gallio.Framework.TestContext.SetInterimOutcome(Gallio.Model.TestOutcome)">
      <summary>Sets the step's interim <see cref="P:Gallio.Framework.TestContext.Outcome" />. The interim outcome is used to communicate the anticipated outcome of the step to later phases of execution.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if attempting to set the outcome while the test is not running</exception>
    </member>
    <member name="M:Gallio.Framework.TestContext.SetThreadDefaultContext(System.Threading.Thread,Gallio.Framework.TestContext)">
      <summary>Sets the default context for the specified thread.</summary>
      <param name="thread">The thread</param>
      <param name="context">The context to associate with the thread, or null to reset the thread's default context to inherit the <see cref="P:Gallio.Framework.TestContext.GlobalContext" /> once again</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread" /> is null</exception>
    </member>
    <member name="E:Gallio.Framework.TestContext.Finishing">
      <summary>The <see cref="E:Gallio.Framework.TestContext.Finishing" /> event is raised when the test is finishing to provide clients with an opportunity to perform additional clean up tasks after all ordinary test processing is finished.</summary>
    </member>
    <member name="T:Gallio.Framework.TestException">
      <summary>
        <para> This exception type is an abstract base class for exceptions that are used to explicitly signal the outcome of a test. </para>
        <para> The test framework uses the value of the <see cref="P:Gallio.Framework.TestException.Outcome" /> property to set the test result instead of applying the standard behavior for unexpected exceptions. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.TestException.ExcludeStackTrace">
      <summary>Returns true if the outcome and message (if any) should be used but the exception stack trace should not be logged.</summary>
    </member>
    <member name="P:Gallio.Framework.TestException.HasNonDefaultMessage">
      <summary>Returns true if the test exception has a non-default message (the message parameter was not null in the constructor arguments).</summary>
    </member>
    <member name="P:Gallio.Framework.TestException.Outcome">
      <summary>Gets the outcome of the test.</summary>
    </member>
    <member name="M:Gallio.Framework.TestException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>When overridden in a derived class, sets the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with information about the exception.</summary>
      <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
      <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
    </member>
    <member name="T:Gallio.Framework.TestFailedException">
      <summary>
        <para> This exception type is used to signal that a test has failed to satisfy some predetermined condition established by the test author. </para>
        <para> For example, an assertion failure may be signaled using a <see cref="T:Gallio.Framework.TestFailedException" /> to distinguish it from other application or runtime errors that a test might encounter at runtime. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.TestFailedException.Outcome">
      <summary>Returns <see cref="P:Gallio.Model.TestOutcome.Failed" />.</summary>
    </member>
    <member name="T:Gallio.Framework.TestInconclusiveException">
      <summary>This exception type is used to signal that a test has not produced a conclusive pass or fail result. The exception message, if present, should explain the reason no conclusive result was obtained.</summary>
    </member>
    <member name="P:Gallio.Framework.TestInconclusiveException.Outcome">
      <summary>Returns <see cref="P:Gallio.Model.TestOutcome.Inconclusive" />.</summary>
    </member>
    <member name="T:Gallio.Framework.TestLog">
      <summary>The test log class provides services for writing information to the execution log associated with a test. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.ConsoleError">
      <summary>Gets the current stream writer for the built-in log stream where the <see cref="P:System.Console.Error" /> stream for the test is recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.ConsoleInput">
      <summary>Gets the current stream writer for the built-in log stream where the <see cref="P:System.Console.In" /> stream for the test is recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.ConsoleOutput">
      <summary>Gets the current stream writer for the built-in log stream where the <see cref="P:System.Console.Out" /> stream for the test is recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.DebugTrace">
      <summary>Gets the current stream writer for the built-in log stream where diagnostic <see cref="T:System.Diagnostics.Debug" /> and <see cref="T:System.Diagnostics.Trace" /> information is recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.Default">
      <summary>Gets the current stream writer for the built-in log stream where the output from the convenience methods of the <see cref="T:Gallio.Framework.TestLog" /> class is recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.Failures">
      <summary>Gets the current stream writer for the built-in log stream where assertion failures, exceptions and other failure data are recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.Warnings">
      <summary>Gets the current stream writer for the built-in log stream where warnings are recorded.</summary>
    </member>
    <member name="P:Gallio.Framework.TestLog.Writer">
      <summary>Gets the current log writer.</summary>
      <value>The execution log, never null</value>
      <exception cref="T:System.InvalidOperationException">Thrown if there is no current log writer</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.Attach(Gallio.Model.Logging.Attachment)">
      <summary>Attaches an attachment to the execution log. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachment">The attachment to include</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachHtml(System.String,System.String)">
      <summary>Attaches an HTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Html" />. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="html">The HTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachImage(System.String,System.Drawing.Image)">
      <summary>Attaches an image attachment with a mime-type compatible with its internal representation. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="image">The image to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachObjectAsXml(System.String,System.Object)">
      <summary>Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the default <see cref="T:System.Xml.Serialization.XmlSerializer" /> for the object's type. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
      <summary>Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the specified <see cref="T:System.Xml.Serialization.XmlSerializer" />. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer" /> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer" nolink="true" /> for the object's type</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachPlainText(System.String,System.String)">
      <summary>Attaches an plain text attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.PlainText" />. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="text">The text to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachXHtml(System.String,System.String)">
      <summary>Attaches an XHTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.XHtml" />. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xhtml">The XHTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.AttachXml(System.String,System.String)">
      <summary>Attaches an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" />. <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xml">The XML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.BeginMarker(Gallio.Model.Logging.Marker)">
      <summary>
        <para> Begins a marked region. Maybe be nested. </para>
        <para> A marker is a hidden tag that labels its contents with a semantic class. It is roughly equivalent in operation to an HTML "span" tag. Various tools may inspect the markers and modify the presentation accordingly. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="marker">The marker</param>
      <returns>A Disposable object that calls <see cref="M:Gallio.Framework.TestLog.End" /> when disposed. This is a convenience for use with the C# "using" statement.</returns>
    </member>
    <member name="M:Gallio.Framework.TestLog.BeginSection(System.String)">
      <summary>
        <para> Begins a section with the specified name. Maybe be nested. </para>
        <para> A section groups together related content in the test log to make it easier to distinguish. The section name is used as a heading. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="sectionName">The name of the section</param>
      <returns>A Disposable object that calls <see cref="M:Gallio.Framework.TestLog.End" /> when disposed. This is a convenience for use with the C# "using" statement.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sectionName" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.Embed(Gallio.Model.Logging.Attachment)">
      <summary>Embeds an attachment. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachment">The attachment to embed</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedExisting(System.String)">
      <summary>Embeds another copy of an existing attachment. This method can be used to repeatedly embed an existing attachment at multiple points in multiple streams without needing to keep the <see cref="T:Gallio.Model.Logging.Attachment" /> instance itself around. This can help to reduce memory footprint since the original <see cref="T:Gallio.Model.Logging.Attachment" nolink="true" /> instance can be garbage collected shortly after it is first attached. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the existing attachment to embed</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachmentName" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if no attachment with the specified name has been previously attached</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedHtml(System.String,System.String)">
      <summary>Embeds an HTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Html" />. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="html">The HTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedImage(System.String,System.Drawing.Image)">
      <summary>Embeds an image attachment with a mime-type compatible with its internal representation. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="image">The image to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedObjectAsXml(System.String,System.Object)">
      <summary>Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the default <see cref="T:System.Xml.Serialization.XmlSerializer" /> for the object's type. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
      <summary>Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the specified <see cref="T:System.Xml.Serialization.XmlSerializer" />. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer" /> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer" nolink="true" /> for the object's type</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedPlainText(System.String,System.String)">
      <summary>Embeds an plain text attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.PlainText" />. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="text">The text to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedXHtml(System.String,System.String)">
      <summary>Embeds an XHTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.XHtml" />. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xhtml">The XHTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.EmbedXml(System.String,System.String)">
      <summary>Embeds an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" />. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xml">The XML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.End">
      <summary>
        <para> Ends the region most recently started with one of the Begin* methods. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <exception cref="T:System.InvalidOperationException">Thrown if there is no current nested region</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.Flush">
      <summary>
        <para> Flushes the log writer. </para>
        <para> This is a convenience method that forwards the request to the current log writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer" /> property. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(System.Char)">
      <summary>Writes a character. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The character value</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(System.String)">
      <summary>Writes a string. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The string value</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(System.Object)">
      <summary>Writes a formatted object. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The object value</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(System.Char[])">
      <summary>Writes an array of characters. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The array of characters</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(System.Char[],System.Int32,System.Int32)">
      <summary>Writes an array of characters. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="buffer">The character buffer</param>
      <param name="index">The index of the first character in the buffer to write</param>
      <param name="count">The number of characters from the buffer to write</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="buffer" /> is null</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index" /> or <paramref name="count" /> are out of range</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(System.String,System.Object[])">
      <summary>Writes a formatted string. <seealso cref="M:System.String.Format(System.String,System.Object[])" /><para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="format">The format string</param>
      <param name="args">The format string arguments</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="format" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.Write(Gallio.Model.Logging.ITestLogStreamWritable)">
      <summary>
        <para> Writes a test log stream writable object to the stream. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="obj">The object to write, or null if none</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteEllipsis">
      <summary>
        <para> Writes an ellipsis to indicate where content has been elided for brevity. An ellipsis may be used, for example, when printing assertion failures to clearly identify sections where the user is not being presented all of the information because it was too long and had to be truncated. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteException(System.Exception)">
      <summary>
        <para> Writes an exception. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="exception">The exception to write</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteException(System.Exception,System.String)">
      <summary>
        <para> Writes an exception within its own section. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="exception">The exception to write</param>
      <param name="sectionName">The section name, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" />, or <paramref name="sectionName" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteException(Gallio.Model.Diagnostics.ExceptionData)">
      <summary>
        <para> Writes an exception. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="exception">The exception data to write</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteException(Gallio.Model.Diagnostics.ExceptionData,System.String)">
      <summary>
        <para> Writes an exception within its own section which provides additional cues for interpretation. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="exception">The exception data to write</param>
      <param name="sectionName">The section name, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteHighlighted(System.String)">
      <summary>
        <para> Writes highlighted text. Highlights can be used to emphasize important information such differences between similar expected and actual values. </para>
        <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para>
      </summary>
      <param name="text">The text to write, or null if none</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteLine">
      <summary>Writes a line delimiter. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteLine(System.Char)">
      <summary>Writes a character followed by a line delimiter. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The character value</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteLine(System.String)">
      <summary>Writes a string followed by a line delimiter. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The string value</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteLine(System.Object)">
      <summary>Writes a formatted object followed by a line delimiter. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The object value</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteLine(System.Char[])">
      <summary>Writes an array of characters followed by a line delimiter. <para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="value">The array of characters</param>
    </member>
    <member name="M:Gallio.Framework.TestLog.WriteLine(System.String,System.Object[])">
      <summary>Writes a formatted string followed by a line delimiter. <seealso cref="M:System.String.Format(System.String,System.Object[])" /><para> This is a convenience method that forwards the request to the current default log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default" /> property. </para></summary>
      <param name="format">The format string</param>
      <param name="args">The format string arguments</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="format" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.TestStep">
      <summary>
        <para> Provides functions for manipulating test steps. </para>
        <para> A step is a delimited region of a test. Each step appears in the report as if it were a dynamically generated test nested within the body of the test (or some other step) that spawned it. The step has its own execution log, pass/fail/inconclusive result and in all other respects behaves much like an ordinary test would. </para>
        <para> The number of steps within a test does not need to be known ahead of time. This can be useful in situations where insufficient information is known about the internal structure of a test to be able to fully populate the test tree will all of its details. Because steps are dynamically generated at runtime, they appear in test reports but they are invisible to test runners. that traverse the test tree. </para>
        <para> There are many interesting uses for steps. For example: <list type="bullet"><item>A single test consisting of a long sequence of actions can be subdivided into steps to simplify analysis.</item><item>A test might depend on environmental configuration that cannot be known a priori.</item><item>A performance test might be scheduled to run for a certain duration but the total number of iterations is unknown. By running each iteration as a step within a single test, the test report can display the execution log and pass/fail result of each iteration independently of the others.</item><item>A script-driven test driver could execute a scripted sequence of verification commands as a distinct step. If the script is written in a general purpose programming language, the total number of commands and the order in which they will be performed might not be known ahead of time. Using steps enables the integration of tests written in forms that cannot be directly adapted to the framework's native testing primitives.</item><item>When testing non-deterministic algorithms, it is sometimes useful to repeat a test multiple times under slightly different conditions until a certain level of confidence is reached. The variety of conditions tested might be determined adaptively based on an error estimation metric. Using steps each condition verified can be reported independently.</item></list></para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.TestStep.CurrentStep">
      <summary>Gets reflection information about the current step.</summary>
    </member>
    <member name="M:Gallio.Framework.TestStep.AddMetadata(System.String,System.String)">
      <summary>Adds metadata to the step that is running in the context.</summary>
      <param name="metadataKey">The metadata key</param>
      <param name="metadataValue">The metadata value</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="metadataKey" /> or <paramref name="metadataValue" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.TestStep.RunStep(System.String,Gallio.Action)">
      <summary>Performs an action as a new step within the current context and associates it with the calling function. Does not verify the outcome of the step.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
    </member>
    <member name="M:Gallio.Framework.TestStep.RunStep(System.String,Gallio.Action,System.Nullable{System.TimeSpan})">
      <summary>Performs an action as a new step within the current context and associates it with the calling function. Does not verify the outcome of the step.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="timeout">The step execution timeout, or null if none</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
    </member>
    <member name="M:Gallio.Framework.TestStep.RunStep(System.String,Gallio.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Reflection.ICodeElementInfo)">
      <summary>Performs an action as a new step within the current context and associates it with the specified code reference. Does not verify the outcome of the step.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="timeout">The step execution timeout, or null if none</param>
      <param name="isTestCase">True if the step represents an independent test case</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
    </member>
    <member name="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Action,Gallio.Model.TestOutcome)">
      <summary>Performs an action as a new step within the current context and associates it with the calling function. Verifies that the step produced the expected outcome.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="expectedOutcome">The expected outcome of the step</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained</exception>
    </member>
    <member name="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Action,System.Nullable{System.TimeSpan},Gallio.Model.TestOutcome)">
      <summary>Performs an action as a new step within the current context and associates it with the calling function. Verifies that the step produced the expected outcome.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="timeout">The step execution timeout, or null if none</param>
      <param name="expectedOutcome">The expected outcome of the step</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
      <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained</exception>
    </member>
    <member name="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Reflection.ICodeElementInfo,Gallio.Model.TestOutcome)">
      <summary>Performs an action as a new step within the current context and associates it with the specified code reference. Verifies that the step produced the expected outcome.</summary>
      <param name="name">The name of the step</param>
      <param name="action">The action to perform</param>
      <param name="timeout">The step execution timeout, or null if none</param>
      <param name="isTestCase">True if the step represents an independent test case</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="expectedOutcome">The expected outcome of the step</param>
      <returns>The context of the step that ran</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="action" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="name" /> is the empty string</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout" /> is negative</exception>
      <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained</exception>
    </member>
    <member name="T:Gallio.Framework.TestTerminatedException">
      <summary>This exception type is used to signal that a test has been terminated with a particular outcome. The exception message, if present, should explain the reason that the test was terminated.</summary>
    </member>
    <member name="P:Gallio.Framework.TestTerminatedException.Outcome">
      <summary>Gets the outcome of the test.</summary>
    </member>
    <member name="M:Gallio.Framework.TestTerminatedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>When overridden in a derived class, sets the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with information about the exception.</summary>
      <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
      <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
    </member>
    <member name="T:Gallio.Framework.TestContextCookie">
      <summary>A context cookie is used to unwind the context stack of the current thread to its previous state prior to a context having been entered.</summary>
    </member>
    <member name="M:Gallio.Framework.TestContextCookie.Dispose">
      <summary>
        <para> Exits the context that was entered when the cookie was granted. </para>
        <para> Equivalent to calling <see cref="M:Gallio.Framework.TestContextCookie.ExitContext" />. This method is provded as a convenience for use with the C# using statement. </para>
      </summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the cookie belongs to a different <see cref="T:System.Threading.Thread" /> or if the context was already exited</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the context manager has been disposed</exception>
    </member>
    <member name="M:Gallio.Framework.TestContextCookie.ExitContext">
      <summary>Exits the context that was entered when the cookie was granted.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the cookie belongs to a different <see cref="T:System.Threading.Thread" /> or if the context was already exited</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the context manager has been disposed</exception>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionContext">
      <summary>Describes the context in which an assertion is being evaluated. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionContext.AssertionFailureBehavior">
      <summary>Gets the current assertion failure behavior.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionContext.CurrentContext">
      <summary>Gets the current assertion context.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionContext.TestContext">
      <summary>Gets the associated test context.</summary>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionContext.CaptureFailures(Gallio.Action,Gallio.Framework.Assertions.AssertionFailureBehavior,System.Boolean)">
      <summary>Performs an action and returns an array containing the assertion failures that were observed within the block.</summary>
      <param name="action">The action to invoke</param>
      <param name="assertionFailureBehavior">The assertion failure behavior to use while executing the block</param>
      <param name="captureExceptionAsAssertionFailure">Specifies whether to represent an exception as an assertion failure, otherwise it is rethrown</param>
      <returns>The array of failures, may be empty if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionContext.GetPendingFailures">
      <summary>Gets the pending failures within the current assertion scope.</summary>
      <returns>The pending failures, or an empty array if none</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionContext.SubmitFailure(Gallio.Framework.Assertions.AssertionFailure)">
      <summary>Submits an assertion failure.</summary>
      <param name="failure">The assertion failure</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="failure" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionException">
      <summary>The exception type used by the Gallio assertion framework to signal assertion failures.</summary>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionFailure">
      <summary>
        <para> An assertion failure is an immutable description of a failed assertion and its cause. It takes into account information about labeled values such as the expected and actual value. </para>
        <para> Use an <see cref="T:Gallio.Framework.Assertions.AssertionFailureBuilder" /> to generate an instance of this type. </para>
      </summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailure.MaxFormattedValueLength">
      <summary>Gets the maximum length of formatted value that can be presented before truncation occurs. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailure.MaxLabelLengthBeforeTruncation">
      <summary>Gets the maximum length of label that can be presented before truncation occurs. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.Description">
      <summary>Gets the description of the assertion failure.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.Exceptions">
      <summary>Gets information about the exceptions.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.InnerFailures">
      <summary>Gets the nested assertion failures that contributed to the composite assertion failure described by this instance.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.LabeledValues">
      <summary>Gets formatted representations of labeled values as key/value pairs.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.Message">
      <summary>Gets the user-supplied message about the assertion failure, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.StackTrace">
      <summary>Get the stack track of the failure, or null if none.</summary>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailure.ToString">
      <summary>Formats the failure as a string.</summary>
      <returns>The formatted string</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailure.WriteDetails(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the details about the assertion failure to the structured text writer.</summary>
      <param name="writer">The structured text writer, not null</param>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailure.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the assertion failure to a test log stream.</summary>
      <param name="writer">The test log stream</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionFailureBuilder">
      <summary>An assertion failure builder is used to construct a complete description of an assertion failure that has occurred. It takes into account information about the expected and actual value, as well as additional labeled values and exceptions.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter">
      <summary>Gets the formatted used by the builder.</summary>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddException(System.Exception)">
      <summary>Adds an exception to the assertion failure.</summary>
      <param name="ex">The exception to add</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddException(Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Adds an exception to the assertion failure.</summary>
      <param name="ex">The exception data to add</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddInnerFailure(Gallio.Framework.Assertions.AssertionFailure)">
      <summary>Adds a nested assertion failure that contributed to the composite assertion failure described by this instance.</summary>
      <param name="innerFailure">The inner assertion failure to add</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="innerFailure" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddInnerFailures(System.Collections.Generic.IEnumerable{Gallio.Framework.Assertions.AssertionFailure})">
      <summary>Adds an enumeration of nested assertion failures that contributed to the composite assertion failure described by this instance.</summary>
      <param name="innerFailures">The enumeration of inner assertion failures to add</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="innerFailures" /> is null or contains a null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddLabeledValue(System.String,System.String)">
      <summary>
        <para> Adds a labeled value as plain text. </para>
        <para> The order in which this method is called determines the order in which this labeled value will appear relative to other labeled values. </para>
      </summary>
      <param name="label">The label</param>
      <param name="formattedValue">The formatted value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label" /> or <paramref name="formattedValue" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="label" /> is empty</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddLabeledValue(System.String,Gallio.Model.Logging.StructuredText)">
      <summary>
        <para> Adds a labeled value as structured text. </para>
        <para> The order in which this method is called determines the order in which this labeled value will appear relative to other labeled values. </para>
      </summary>
      <param name="label">The label</param>
      <param name="formattedValue">The formatted value as structured text</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label" /> or <paramref name="formattedValue" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="label" /> is empty</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddLabeledValue(Gallio.Framework.Assertions.AssertionFailure.LabeledValue)">
      <summary>
        <para> Adds a labeled value. </para>
        <para> The order in which this method is called determines the order in which this value will appear relative to other labeled values. </para>
      </summary>
      <param name="labeledValue">The labeled value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawActualValue(System.Object)">
      <summary>
        <para> Adds the raw actual value to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter" />. </para>
        <para> The order in which this method is called determines the order in which this value will appear relative to other labeled values. </para>
      </summary>
      <param name="actualValue">The actual value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawExpectedAndActualValuesWithDiffs(System.Object,System.Object)">
      <summary>
        <para> Adds the raw expected and actual values to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter" /> and includes formatting of their differences. </para>
        <para> The order in which this method is called determines the order in which the values will appear relative to other labeled values. </para>
      </summary>
      <param name="expectedValue">The expected value</param>
      <param name="actualValue">The actual value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawExpectedValue(System.Object)">
      <summary>
        <para> Adds the raw expected value to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter" />. </para>
        <para> The order in which this method is called determines the order in which this value will appear relative to other labeled values. </para>
      </summary>
      <param name="expectedValue">The expected value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawLabeledValue(System.String,System.Object)">
      <summary>
        <para> Adds a raw labeled value to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter" />. </para>
        <para> The order in which this method is called determines the order in which this labeled value will appear relative to other labeled values. </para>
      </summary>
      <param name="label">The label</param>
      <param name="value">The raw unformatted value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="label" /> is empty</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawLabeledValuesWithDiffs(System.String,System.Object,System.String,System.Object)">
      <summary>
        <para> Adds two raw labeled values formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter" /> and includes formatting of their differences. </para>
        <para> The order in which this method is called determines the order in which the values will appear relative to other labeled values. </para>
      </summary>
      <param name="leftLabel">The left label</param>
      <param name="leftValue">The left value</param>
      <param name="rightLabel">The right label</param>
      <param name="rightValue">The right value</param>
      <returns>The builder, to allow for fluent method chaining</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="leftLabel" /> or <paramref name="rightLabel" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.CreateAssertionFailure(System.String,System.String,Gallio.Model.Diagnostics.StackTraceData,System.Collections.Generic.IList{Gallio.Framework.Assertions.AssertionFailure.LabeledValue},System.Collections.Generic.IList{Gallio.Model.Diagnostics.ExceptionData},System.Collections.Generic.IList{Gallio.Framework.Assertions.AssertionFailure})">
      <summary>Creates an assertion failure object.</summary>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.SetMessage(System.String)">
      <summary>Sets the user-supplied assertion failure message.</summary>
      <param name="message">The user-supplied assertion failure message, or null if none</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.SetMessage(System.String,System.Object[])">
      <summary>Sets the user-supplied assertion failure message to a formatted value.</summary>
      <param name="messageFormat">The user-supplied assertion failure message format string, or null if none</param>
      <param name="messageArgs">The format arguments, or null or empty if none</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.SetStackTrace(Gallio.Model.Diagnostics.StackTraceData)">
      <summary>Sets the stack trace.</summary>
      <param name="stackTrace">The stack trace, or null if none</param>
      <returns>The builder, to allow for fluent method chaining</returns>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.ToAssertionFailure">
      <summary>Generates an immutable object that describes the failure.</summary>
      <returns>The assertion failure</returns>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionFailureException">
      <summary>
        <para> An exception type that wraps a <see cref="T:Gallio.Framework.Assertions.AssertionFailure" />. </para>
        <para> This exception is used in two ways: <list type="bullet"><item>The exception may be "silent" when it is used to cause a test to terminate due to an assertion failure that has already been logged or otherwise conveyed to the user.</item><item>Otherwise the exception will be reported the user in the typical manner.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailureException.ExcludeStackTrace">
      <summary>Returns true if the outcome and message (if any) should be used but the exception stack trace should not be logged.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailureException.Failure">
      <summary>Gets the associated assertion failure, never null.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailureException.IsSilent">
      <summary>Returns true if the assertion failure exception should not be logged because the information it contains has already been conveyed to the user.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailureException.Message">
      <summary>Gets a message that describes the current exception.</summary>
      <value>The error message that explains the reason for the exception, or an empty string("").</value>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailureException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>When overridden in a derived class, sets the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with information about the exception.</summary>
      <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
      <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionHelper">
      <summary>Provides utilities to assist with the implementation of new asserts. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionHelper.Eval(Gallio.Action)">
      <summary>
        <para> Performs an action and returns an array containing the assertion failures that were observed within the block. If the block throws an exception, it is reified as an assertion failure. </para>
        <para> The assertion failure behavior while the action runs is <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw" /> so the action terminates on the first failure. The assertion failure itself is returned but it is not logged. </para>
        <para> This method is very useful for composing assertions because it enables assertions to be evaluated, and, when they fail, the failure can be recorded as an inner assertion failure of some larger composite assertion. For example, this makes it possible to create an assertion over a collection of items by composing an assertion over a single item. </para>
      </summary>
      <param name="action">The action to invoke</param>
      <returns>The array of failures, may be empty if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionHelper.Eval(Gallio.Action,Gallio.Framework.Assertions.AssertionFailureBehavior)">
      <summary>Performs an action and returns an array containing the assertion failures that were observed within the block. If the block throws an exception, it is reified as an assertion failure.</summary>
      <param name="action">The action to invoke</param>
      <param name="assertionFailureBehavior">The assertion failure behavior to use while the action runs</param>
      <returns>The array of failures, may be empty if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionHelper.Fail(Gallio.Framework.Assertions.AssertionFailure)">
      <summary>Submits a failure if the assertion failure object is non-null.</summary>
      <param name="failure">Failure to be submited, or null if none</param>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionHelper.Verify(Gallio.Func{Gallio.Framework.Assertions.AssertionFailure})">
      <summary>
        <para> Verifies that an assertion succeeded. </para>
        <para> If the assertion function returns null then the assertion is deemed to have passed. If it returns an <see cref="T:Gallio.Framework.Assertions.AssertionFailure" /> or throws an exception, then is is deemed to have failed. </para>
        <para> When an assertion failure is detected, it is submitted to <see cref="M:Gallio.Framework.Assertions.AssertionContext.SubmitFailure(Gallio.Framework.Assertions.AssertionFailure)" /> which may choose to throw a <see cref="T:Gallio.Framework.Assertions.AssertionFailureException" /> or do something else. </para>
      </summary>
      <param name="assertionFunc">The assertion function to evaluate</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assertionFunc" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionFailure.LabeledValue">
      <summary>
        <para> A labeled value describes a named assertion parameter. </para>
        <para> The label indicates the purpose of the value, such as "Expected Value". The value itself should be formatted to emphasize structural characteristics. </para>
        <para> For additional emphasis, such as for comparison purposes (ie. diffs), the value may be formatted as structured text to include highlights and other markup. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.FormattedValue">
      <summary>Gets the formatted value as structured text.</summary>
    </member>
    <member name="P:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.Label">
      <summary>Gets the label.</summary>
    </member>
    <member name="M:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="T:Gallio.Framework.Assertions.AssertionFailureBehavior">
      <summary>
        <para> Specifies the behavior that should take place when a <see cref="T:Gallio.Framework.Assertions.AssertionFailure" /> is submitted to the <see cref="T:Gallio.Framework.Assertions.AssertionContext" />. </para>
        <para> There are three orthogonal dimensions to the assertion failure behavior: <list type="bullet"><item><see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log" /> / No-<see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log" nolink="true" />: Log the failure when reported, or do not log it.</item><item><see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw" /> / No-<see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw" nolink="true" />: Throw an exception to abort computation, or allow it to continue</item><item><see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard" /> / No-<see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard" nolink="true" /> (aka. <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.CaptureAndContinue" />): Discard the failure when finished reporting it, or capture it in a list for further processing</item></list></para>
      </summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log">
      <summary>When an assertion failure is reported, capture it in a list, log it, and allow the computation to continue.</summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw">
      <summary>When an assertion failure is reported, capture it in a list, then throw an <see cref="T:Gallio.Framework.Assertions.AssertionFailureException" /> to immediately abort the current computation.</summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.LogAndThrow">
      <summary>
        <para> When an assertion failure is reported, capture it in a list, log it, then throw an <see cref="T:Gallio.Framework.Assertions.AssertionFailureException" /> to immediately abort the current computation. </para>
        <para> This is the default behavior for assertion contexts. </para>
      </summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard">
      <summary>When an assertion failure is reported, discard it (instead of capturing it in a list) and allow the current computation to continue.</summary>
    </member>
    <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.CaptureAndContinue">
      <summary>
        <para> When an assertion failure is reported, capture it in a list and allow the current computation to continue. </para>
        <para> This is the opposite of <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard" />, and is an alias for the case where none of the other flags are specified. </para>
      </summary>
    </member>
    <member name="T:Gallio.Framework.Conversions.ArrayToArrayConversionRule">
      <summary>Converts arrays from one-dimensional arrays of one element type to another. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.ArrayToArrayConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.ArrayToArrayConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.BaseConverter">
      <summary>An abstract base class implementation of <see cref="T:Gallio.Framework.Conversions.IConverter" /> that mostly validates arguments and provides a default implement for <see cref="M:Gallio.Framework.Conversions.BaseConverter.CanConvert(System.Type,System.Type)" /> based on <see cref="M:Gallio.Framework.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)" />. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.BaseConverter.CanConvert(System.Type,System.Type)">
      <summary>Determines whether the converter can convert a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type</param>
      <param name="targetType">The target type</param>
      <returns>True if the converter supports this conversion</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.BaseConverter.CanConvertImpl(System.Type,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.CanConvert(System.Type,System.Type)" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <returns>True if the conversion is supported</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.BaseConverter.Convert(System.Object,System.Type)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert</param>
      <param name="targetType">The target type</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.BaseConverter.ConvertImpl(System.Object,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.Convert(System.Object,System.Type)" /></summary>
      <param name="sourceValue">The source value</param>
      <param name="targetType">The target type, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type</param>
      <param name="targetType">The target type</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.BaseConverter.GetConversionCostImpl(System.Type,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.Converter">
      <summary>Service locator for <see cref="T:Gallio.Framework.Conversions.IConverter" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Conversions.Converter.Instance">
      <summary>Gets the global conveter singleton.</summary>
    </member>
    <member name="T:Gallio.Framework.Conversions.ConvertibleToConvertibleConversionRule">
      <summary>Converts values among <see cref="T:System.IConvertible" /> types. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.ConvertibleToConvertibleConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.ConvertibleToConvertibleConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.NullConverter">
      <summary>A null implementation of a converter that does not actually support converting values. Consequently <see cref="M:Gallio.Framework.Conversions.IConverter.CanConvert(System.Type,System.Type)" /> returns false whenever a conversion would be required.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.NullConverter.Instance">
      <summary>Gets a singleton instance of the null converter. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.NullConverter.ConvertImpl(System.Object,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.Convert(System.Object,System.Type)" /></summary>
      <param name="sourceValue">The source value</param>
      <param name="targetType">The target type, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.NullConverter.GetConversionCostImpl(System.Type,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.ObjectToStringConversionRule">
      <summary>Converts an <see cref="T:System.Object" /> into a <see cref="T:System.String" /> using <see cref="M:System.Object.ToString" />. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.ObjectToStringConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.ObjectToStringConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.RuleBasedConverter">
      <summary>A rule-based converter uses a set of <see cref="T:Gallio.Framework.Conversions.IConversionRule" />s to perform conversions. It caches the best path it determines for each conversion so that it only needs to compute the conversion cost once.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.RuleBasedConverter.ConvertImpl(System.Object,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.Convert(System.Object,System.Type)" /></summary>
      <param name="sourceValue">The source value</param>
      <param name="targetType">The target type, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.RuleBasedConverter.GetConversionCostImpl(System.Type,System.Type)">
      <summary>Implements <see cref="M:Gallio.Framework.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.StringToXmlDocumentConversionRule">
      <summary>Converts a <see cref="T:System.String" /> into an <see cref="T:System.Xml.XmlDocument" /> assuming the string is valid xml. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.StringToXmlDocumentConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.StringToXmlDocumentConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.XPathNavigableToXPathNavigatorConversionRule">
      <summary>Converts <see cref="T:System.Xml.XPath.IXPathNavigable" /> objects to <see cref="T:System.Xml.XPath.XPathNavigator" /> objects. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.XPathNavigableToXPathNavigatorConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.XPathNavigableToXPathNavigatorConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.XPathNavigatorToStringConversionRule">
      <summary>Converts an <see cref="T:System.Xml.XPath.XPathNavigator" /> into a <see cref="T:System.String" /> by value or outer xml. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.XPathNavigatorToStringConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.XPathNavigatorToStringConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.XPathNavigatorToXmlSerializableTypeConversionRule">
      <summary>Converts <see cref="T:System.Xml.XPath.XPathNavigator" /> objects to XML serializable objects that have the <see cref="T:System.Xml.Serialization.XmlTypeAttribute" />. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.XPathNavigatorToXmlSerializableTypeConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.XPathNavigatorToXmlSerializableTypeConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.ConversionCost">
      <summary>Describes the relative cost of performing a conversion so that different conversions can be ranked by cost. A typical direct conversion should have a cost of one. Lossy conversions should be more costly.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.ConversionCost.Best">
      <summary>The conversion is the best possible conversion available. Built-in conversions should not use this value. It should be reserved for user-created conversions that are intended to override the built-in conversions. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.ConversionCost.Default">
      <summary>The conversion is a poor default choice. It costs a sufficient number of units of work to perform to ensure that a non-default conversion will be chosen if possible. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.ConversionCost.Invalid">
      <summary>The conversion is not supported. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.ConversionCost.Maximum">
      <summary>The conversion costs the maximum possible amount of work to perform. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.ConversionCost.Typical">
      <summary>The conversion costs a typical amount of work to perform. It may yet be trumped by a conversion that costs less. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Conversions.ConversionCost.Zero">
      <summary>The conversion has zero cost because no work is required. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Conversions.ConversionCost.IsInvalid">
      <summary>Returns true if the conversion is not supported.</summary>
    </member>
    <member name="P:Gallio.Framework.Conversions.ConversionCost.Value">
      <summary>Gets the cost value.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.ConversionCost.Add(Gallio.Framework.Conversions.ConversionCost)">
      <summary>Adds this conversion cost with the other and returns the sum.</summary>
      <param name="other">The other conversion cost</param>
      <returns>The summed conversion cost</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.ConversionCost.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.IConversionRule">
      <summary>A conversion rule encapsulates an algorithm for converting a value from a source type to a target type.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.IConversionRule.Convert(System.Object,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The converted value</returns>
    </member>
    <member name="M:Gallio.Framework.Conversions.IConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Framework.Conversions.IConverter)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type, never null</param>
      <param name="targetType">The target type, never null</param>
      <param name="elementConverter">A converter that may be used to recursively convert the contents of a composite object from one type to another, never null</param>
      <returns>The conversion cost</returns>
    </member>
    <member name="T:Gallio.Framework.Conversions.IConverter">
      <summary>A converter converts a value from a source type to a target type.</summary>
    </member>
    <member name="M:Gallio.Framework.Conversions.IConverter.CanConvert(System.Type,System.Type)">
      <summary>Determines whether the converter can convert a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type</param>
      <param name="targetType">The target type</param>
      <returns>True if the converter supports this conversion</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceType" /> or <paramref name="targetType" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Conversions.IConverter.Convert(System.Object,System.Type)">
      <summary>Converts the value <paramref name="sourceValue" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceValue">The value to convert</param>
      <param name="targetType">The target type</param>
      <returns>The converted value</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="targetType" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown the requested conversion was not supported</exception>
    </member>
    <member name="M:Gallio.Framework.Conversions.IConverter.GetConversionCost(System.Type,System.Type)">
      <summary>Gets the cost of converting a value of type <paramref name="sourceType" /> to type <paramref name="targetType" />.</summary>
      <param name="sourceType">The source type</param>
      <param name="targetType">The target type</param>
      <returns>The conversion cost</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceType" /> or <paramref name="targetType" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.AggregateDataSet">
      <summary>Abstract base class for an aggregate data set that combines a list of data sets according to some algorithm. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.AggregateDataSet.DataSets">
      <summary>Gets the immutable list of combined data sets.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.AggregateDataSet.AddDataSet(Gallio.Framework.Data.IDataSet)">
      <summary>Adds a data set to the aggregate.</summary>
      <param name="dataSet">The data set to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataSet" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="dataSet" /> is already a member of this aggregate</exception>
    </member>
    <member name="T:Gallio.Framework.Data.BaseDataAccessor">
      <summary>A base implementation of <see cref="T:Gallio.Framework.Data.IDataAccessor" /> that performs argument validation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)">
      <summary>Gets a value derived from the <see cref="T:Gallio.Framework.Data.IDataItem" />.</summary>
      <param name="item">The data item</param>
      <returns>The value</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataAccessor.GetValueImpl(Gallio.Framework.Data.IDataItem)">
      <summary>Internal implementation of <see cref="M:Gallio.Framework.Data.BaseDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)" /> after argument validation has been performed.</summary>
      <param name="item">The data item, not null</param>
      <returns>The value</returns>
      <exception cref="T:Gallio.Framework.Data.DataBindingException">Thrown if the data binding fails</exception>
    </member>
    <member name="T:Gallio.Framework.Data.BaseDataBinder">
      <summary>Abstract base class for <see cref="T:Gallio.Framework.Data.IDataBinder" /> that validates input arguments before passing them on to the implementation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
      <summary>Registers the <see cref="T:Gallio.Framework.Data.IDataBinder" />'s requests to query particular <see cref="T:Gallio.Framework.Data.IDataSet" />s with the <see cref="T:Gallio.Framework.Data.DataBindingContext" />.</summary>
      <param name="context">The data binding context</param>
      <param name="resolver">The data source resolver</param>
      <returns>The data binding accessor to use for obtaining bound values from <see cref="T:Gallio.Framework.Data.IDataItem" />s produced by the <see cref="T:Gallio.Framework.Data.DataBindingContext" />.</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataBinder.RegisterImpl(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
      <summary>Implementation of <see cref="M:Gallio.Framework.Data.BaseDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)" />.</summary>
      <param name="context">The data binding context, not null</param>
      <param name="resolver">The data source resolver, not null</param>
      <returns>The data binding accessor</returns>
    </member>
    <member name="T:Gallio.Framework.Data.BaseDataItem">
      <summary>Abstract base class for data items. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.BaseDataItem.IsDynamic">
      <summary>
        <para> Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. </para>
        <para> For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataItem.GetBindingsForInformalDescription">
      <summary>Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete.</summary>
      <returns>The enumeration of bindings</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataItem.GetValue(Gallio.Framework.Data.DataBinding)">
      <summary>Gets the value of the specified binding.</summary>
      <param name="binding">The data binding, never null</param>
      <returns>The value</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataItem.GetValueImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.GetValue(Gallio.Framework.Data.DataBinding)" />.</summary>
      <param name="binding">The binding, never null</param>
      <returns>The associated value</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadata(Gallio.Collections.PropertyBag)">
      <summary>
        <para> Populates the specified metadata map with key/value pairs associated with the data item, if any. </para>
        <para> For example, the metadata may contain a description that serves as documentation of the contents of the data item or of the test scenario that is exercised by the contents of the data item. This metadata may be injected into test instances created with the contents of this data item. </para>
      </summary>
      <param name="map">The metadata map</param>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadataImpl(Gallio.Collections.PropertyBag)">
      <summary>Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadata(Gallio.Collections.PropertyBag)" />.</summary>
      <param name="map">The metadata map to populate, never null</param>
    </member>
    <member name="T:Gallio.Framework.Data.BaseDataSet">
      <summary>Abstract base class for <see cref="T:Gallio.Framework.Data.IDataSet" /> that validates input arguments before passing them on to the implementation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.BaseDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataSet.CanBind(Gallio.Framework.Data.DataBinding)">
      <summary>Returns true if the data set can provide a value for the specified binding.</summary>
      <param name="binding">The binding</param>
      <returns>True if the data set can provide a value for the binding</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataSet.GetItems(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Gets an enumeration of data items that can supply values for a given collection of bindings. It should produce items even if some of the requested bindings cannot be fulfilled.</summary>
      <param name="bindings">The bindings that are requested</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The enumeration of data items</returns>
    </member>
    <member name="M:Gallio.Framework.Data.BaseDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="T:Gallio.Framework.Data.BoundDataAccessor">
      <summary>A <see cref="T:Gallio.Framework.Data.IDataAccessor" /> that simply accesses a value contained by a data item using a particular <see cref="T:Gallio.Framework.Data.DataBinding" />. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Framework.Data.CombinatorialJoinStrategy">
      <summary>The combinatorial join strategy combines items by constructing the cartesian product of the items of each provider. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.CombinatorialJoinStrategy.Instance">
      <summary>Gets the singleton instance of the strategy. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.CombinatorialJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
      <summary>Joins the items from each provider into a sequence of aggregate items.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindingsPerProvider">The list of bindings per provider</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the <paramref name="providers" /> collection</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ConcatenationMergeStrategy">
      <summary>The concatenation merge strategy combines the items from multiple providers by simply concatenating the items in the order in which they appear and proceeding from one provider to the next until all providers have been fully processed. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.ConcatenationMergeStrategy.Instance">
      <summary>Gets the singleton instance of the strategy. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.ConcatenationMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Merges the items from each provider into a new sequence.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindings">The bindings</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The merged sequence of items</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ConstantDataAccessor">
      <summary>An implementation of <see cref="T:Gallio.Framework.Data.IDataAccessor" /> that returns a constant value, ignoring the data item it is passed. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Framework.Data.CsvDataSet">
      <summary>
        <para> A CSV data set retrieves fields from a CSV document as strings. </para>
        <para> If the CSV document has a header, then it is interpreted as the names of the columns. Columns with names in brackets, such as "[ExpectedException]", are interpreted as containing metadata values associated with the named key. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.CsvDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.CsvDataSet.CommentPrefix">
      <summary>
        <para> Gets or sets a character that indicates that a line in the source represents a comment. May be set to '\0' (null) to disable comment handling. </para>
        <para> Comment lines are excluded from the record set. </para>
      </summary>
      <value>The default value is '#' (pound).</value>
    </member>
    <member name="P:Gallio.Framework.Data.CsvDataSet.DataLocationName">
      <summary>
        <para> Gets the name of the location that is providing the data, or null if none. </para>
        <para> The data location name and line number are exposed as <see cref="F:Gallio.Model.MetadataKeys.DataLocation" /> metadata when provided. </para>
      </summary>
      <value>The default value is null.</value>
    </member>
    <member name="P:Gallio.Framework.Data.CsvDataSet.FieldDelimiter">
      <summary>Gets or sets the field delimiter character.</summary>
      <value>The default value is ',' (comma).</value>
    </member>
    <member name="P:Gallio.Framework.Data.CsvDataSet.HasHeader">
      <summary>Gets or sets whether the CSV document has a header that should be used to provide aliases for indexed columns.</summary>
      <value>The default value is 'false' which indicates that the file does not have a header.</value>
    </member>
    <member name="M:Gallio.Framework.Data.CsvDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.CsvDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="T:Gallio.Framework.Data.CsvReader">
      <summary>
        <para> Reads data from a Comma Separated Values document. </para>
        <para> The document format simply consists of sequential lines of delimited field values. <list type="bullet"><item>The standard delimiter is ',' (comma) but it may be overridden using <see cref="P:Gallio.Framework.Data.CsvReader.FieldDelimiter" />.</item><item>Empty lines are considered to be records with one empty field.</item><item>Lines that begin with a special <see cref="P:Gallio.Framework.Data.CsvReader.CommentPrefix" /> are excluded from the record set.</item><item>Field values may be quoted using '"' (quote) characters. The quotes will be omitted from the record set. Quotes may be escaped by doubling them within a quoted field.</item><item>Unbalanced quotes are tolerated but may produce unexpected results.</item><item>Excess whitespace is trimmed unless quoted.</item><item>The document may contain a header consiting of field names but the reader does not interpret it in any special way. It will simply be returned to the client as an ordinary record.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.CsvReader.CommentPrefix">
      <summary>
        <para> Gets or sets a character that indicates that a line in the source represents a comment. May be set to '\0' (null) to disable comment handling. </para>
        <para> Comment lines are excluded from the record set. </para>
      </summary>
      <value>The default value is '#' (pound).</value>
    </member>
    <member name="P:Gallio.Framework.Data.CsvReader.FieldDelimiter">
      <summary>Gets or sets the field delimiter character.</summary>
      <value>The default value is ',' (comma).</value>
    </member>
    <member name="P:Gallio.Framework.Data.CsvReader.PreviousRecordLineNumber">
      <summary>Gets the 1-based line number of the previously returned record, or 0 if no lines have been read yet.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.CsvReader.Close">
      <summary>Closes the reader.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.CsvReader.ReadRecord">
      <summary>Reads the list of fields that belong to the next record in the document. Returns null at the end of the document.</summary>
      <returns>The record contents as an array of field values, or null if at the end of the document</returns>
      <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs</exception>
    </member>
    <member name="T:Gallio.Framework.Data.DataBinding">
      <summary>
        <para> A data binding object describes how a data binding is to take place. </para>
        <para> This class provides support for optional path-based and index-based lookup. Subclasses may provide additional properties that are recognized by special kinds of data sets to modify how a bound value is resolved. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBinding.Index">
      <summary>Gets an optional binding index that describes how to locate the bound value in a data set that is structured as an ordered tuple, such as the ordinal index of a cell in an array. Null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBinding.Path">
      <summary>Gets an optional binding path that describes how to locate the bound value in the data set, such as a column name or an XPath expression. Null if none.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.DataBinding.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataBinding.Equals(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataBinding.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataBinding.ReplaceIndex(System.Nullable{System.Int32})">
      <summary>Creates a clone of the data binding with a different index.</summary>
      <param name="index">The new index</param>
      <returns>The cloned binding</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataBinding.ToString">
      <summary>Returns a debug representation of the binding as a string.</summary>
      <returns>The string representation</returns>
    </member>
    <member name="T:Gallio.Framework.Data.DataBindingContext">
      <summary>A <see cref="T:Gallio.Framework.Data.DataBindingContext" /> tracks a list of <see cref="T:Gallio.Framework.Data.IDataSet" />s and <see cref="T:Gallio.Framework.Data.DataBinding" />s that are used to produce <see cref="T:Gallio.Framework.Data.IDataItem" />s. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBindingContext.Converter">
      <summary>Gets the converter service.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBindingContext.DataSets">
      <summary>Gets the immutable list of data sets to be enumerated during data binding.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBindingContext.HasBindings">
      <summary>Returns true if the data binding context contains registered data bindings.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBindingContext.Strategy">
      <summary>Gets or sets the <see cref="T:Gallio.Framework.Data.IJoinStrategy" /> to use for combining the <see cref="P:Gallio.Framework.Data.DataBindingContext.DataSets" /> together. By default the strategy is <see cref="T:Gallio.Framework.Data.CombinatorialJoinStrategy" />.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)">
      <summary>
        <para> Gets an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem" />s. </para>
        <para> The contents of each item may be inspected using a <see cref="T:Gallio.Framework.Data.IDataAccessor" /> as returned by <see cref="M:Gallio.Framework.Data.DataBindingContext.RegisterBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)" />. When the client is finished with an item, it should dispose it by calling the <see cref="M:System.IDisposable.Dispose" /> method of the <see cref="T:Gallio.Framework.Data.IDataItem" nolink="true" />. </para>
      </summary>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The enumeration of data items</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingContext.RegisterBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)">
      <summary>Registers a data binding for a given data set and adds the data set to the list of data sets to be enumerated during data binding. Returns a <see cref="T:Gallio.Framework.Data.IDataAccessor" /> that may be used to retrieve the values associated with the binding.</summary>
      <param name="dataSet">The data set</param>
      <param name="binding">The data binding</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataSet" /> or <paramref name="binding" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.DataBindingException">
      <summary>The type of exception thrown when data binding operations fail.</summary>
    </member>
    <member name="T:Gallio.Framework.Data.DataBindingSpec">
      <summary>
        <para> A data binding specification describes how values are bound to slots (<see cref="T:Gallio.Reflection.ISlotInfo" />) of a type or method. The specification can then be used to create new objects or invoke methods. </para>
        <para> A specification automatically converts values to the correct types for data binding using a <see cref="T:Gallio.Framework.Conversions.IConverter" />. It can also format the specification to a string using a <see cref="T:Gallio.Framework.Formatting.IFormatter" />. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBindingSpec.Converter">
      <summary>Gets the converter.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataBindingSpec.SlotValues">
      <summary>Gets the slot values.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingSpec.AppendFormattedGenericArguments(System.Text.StringBuilder,System.Type[],Gallio.Framework.Formatting.IFormatter)">
      <summary>Appends formatted generic arguments within angle brackets, if any.</summary>
      <param name="str">The string builder, not null</param>
      <param name="arguments">The arguments, not null</param>
      <param name="formatter">The formatter, not null</param>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingSpec.AppendFormattedMethodArguments(System.Text.StringBuilder,System.Object[],Gallio.Framework.Formatting.IFormatter)">
      <summary>Appends formatted generic arguments within parentheses, if any.</summary>
      <param name="str">The string builder, not null</param>
      <param name="arguments">The arguments, not null</param>
      <param name="formatter">The formatter, not null</param>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingSpec.AppendFormattedNamedValues(System.Text.StringBuilder,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},Gallio.Framework.Formatting.IFormatter)">
      <summary>Appends formatted values keyed and sorted by name, if any. This method is used with fields and properties.</summary>
      <param name="str">The string builder, not null</param>
      <param name="namedValues">The named values, not null</param>
      <param name="formatter">The formatter, not null</param>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingSpec.Format(System.String,Gallio.Framework.Formatting.IFormatter)">
      <summary>
        <para> Formats the specification to a string for presentation. </para>
        <para> The values are listed sequentially as follows: <list type="bullet"><item>The <paramref name="entity" />.</item><item>The <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> slot values, if any, are ordered by index and enclosed within angle bracket.</item><item>The <see cref="T:Gallio.Reflection.IParameterInfo" /> slot values, if any, are ordered by index and enclosed within parentheses.</item><item>All other slot values, if any, are sorted by name and formatted as name-value pair assignments following a colon and delimited by a comma</item></list> Example: 'SomeType&lt;int, string&gt;(42, "deep thought"): Author="Douglas Adams", Book="HGTTG"'. </para>
        <para> If there are no slots of a given kind, then the enclosing angle brackets or parentheses are ignored. Therefore if <see cref="P:Gallio.Framework.Data.DataBindingSpec.SlotValues" /> is empty then <paramref name="entity" /> will be returned unmodified. </para>
      </summary>
      <param name="entity">The entity that is qualified by the specification such as the name of a type or method</param>
      <param name="formatter">The formatter</param>
      <returns>The formatted specification</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="entity" /> or <paramref name="formatter" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingSpec.FormatImpl(System.String,Gallio.Framework.Formatting.IFormatter)">
      <summary>Internal implementation of <see cref="M:Gallio.Framework.Data.DataBindingSpec.Format(System.String,Gallio.Framework.Formatting.IFormatter)" /> after argument validation.</summary>
      <param name="entity">The entity that is qualified by the specification such as the name of a type or method</param>
      <param name="formatter">The formatter, not null</param>
      <returns>The formatted specification</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataBindingSpec.ResolveMember``1(System.Type,``0)">
      <summary>
        <para> Resolves a member that may be declared by a generic type using the resolved type or one of its subtypes. </para>
        <para> For example, if <paramref name="member" /> was declared by type Foo&lt;T&gt; and <paramref name="resolvedType" /> is a subtype of Foo&lt;int&gt;, returns a reflection object for the member as declared by Foo&lt;int&gt;. </para>
      </summary>
      <typeparam name="T">The type of member</typeparam>
      <param name="resolvedType">The resolved type, not null</param>
      <param name="member">The member, not null</param>
      <returns>The resolved member</returns>
    </member>
    <member name="T:Gallio.Framework.Data.DataItemUtils">
      <summary>Utilities for <see cref="T:Gallio.Framework.Data.IDataItem" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.DataItemUtils.GetMetadata(Gallio.Framework.Data.IDataItem)">
      <summary>Gets the metadata associated with a data item.</summary>
      <param name="dataItem">The data item</param>
      <returns>The associated metadata</returns>
    </member>
    <member name="T:Gallio.Framework.Data.DataRow">
      <summary>
        <para> A data row is a simple immutable value type that encpasulates an array of values along with associated metadata for use in data binding expressions. It presents a fluent interface that users may find more convenient than other <see cref="T:Gallio.Framework.Data.IDataItem" /> implementations. </para>
        <para> The data in a <see cref="T:Gallio.Framework.Data.DataRow" /> is always considered dynamic. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataRow.IsDynamic">
      <summary>
        <para> Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. </para>
        <para> For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Data.DataRow.GetBindingsForInformalDescription">
      <summary>Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete.</summary>
      <returns>The enumeration of bindings</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataRow.GetValueImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.GetValue(Gallio.Framework.Data.DataBinding)" />.</summary>
      <param name="binding">The binding, never null</param>
      <returns>The associated value</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataRow.PopulateMetadataImpl(Gallio.Collections.PropertyBag)">
      <summary>Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadata(Gallio.Collections.PropertyBag)" />.</summary>
      <param name="map">The metadata map to populate, never null</param>
    </member>
    <member name="M:Gallio.Framework.Data.DataRow.WithMetadata(System.String,System.String)">
      <summary>Returns an augmented data row with added metadata.</summary>
      <param name="key">The metadata key</param>
      <param name="value">The metadata value</param>
      <returns>The augmented data row</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key" /> or <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Data.DataRow.WithMetadata(Gallio.Collections.PropertyBag)">
      <summary>Returns an augmented data row with added metadata from the specified metadata map.</summary>
      <param name="map">The metadata map</param>
      <returns>The augmented data row</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.DataSource">
      <summary>An data source object provides a simple way of aggregating data sets together. It also provides a simple translation mechanism for mapping binding paths to binding indexes which is useful for providing named aliases for columns in indexed data sets.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.DataSource.Name">
      <summary>Gets the name of the data source, or an empty string if it is anonymous.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.DataSource.AddIndexAlias(System.String,System.Nullable{System.Int32})">
      <summary>Adds an alias for a binding path to map it to the specified index.</summary>
      <param name="path">The binding path to match in a case-insensitive manner</param>
      <param name="index">The associated index to use instead</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Data.DataSource.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.DataSource.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="T:Gallio.Framework.Data.DataSourceTable">
      <summary>A data source table manages a collection of named data sources.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.DataSourceTable.ResolveDataSource(System.String)">
      <summary>Resolves the data source with the specified name.</summary>
      <param name="name">The data source name</param>
      <returns>The resolved data source, or null if none found</returns>
    </member>
    <member name="T:Gallio.Framework.Data.FactoryDataSet">
      <summary>
        <para> A factory data set generates data items by invoking a factory delegate and interpreting its output in accordance with the factory kind. </para>
        <para> Multiple different interpretations are supported. Refer to the documentation of the <see cref="T:Gallio.Framework.Data.FactoryKind" /> enumeration for more details about each kind. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.FactoryDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.FactoryDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.FactoryDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="T:Gallio.Framework.Data.Generators">
      <summary>This class provides a set of factory methods for creating enumerable objects that generate values according to a specified rule. The generated values may be used for a variety of purposes including data-driven testing. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.Generators.EnumValues(System.Type)">
      <summary>Creates an enumeration that yields all values of an <see cref="T:System.Enum" /> type.</summary>
      <param name="enumType">The <see cref="T:System.Enum" /> type</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="enumType" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="enumType" /> is not an <see cref="T:System.Enum" /> type</exception>
    </member>
    <member name="M:Gallio.Framework.Data.Generators.Linear(System.Int32,System.Int32,System.Int32)">
      <summary>Creates an enumeration that yields a linear sequence of <see cref="T:System.Int32" /> values forming an arithmetic progression.</summary>
      <param name="firstValue">The first value to generate</param>
      <param name="count">The number of values to generate</param>
      <param name="step">The increment for each successive value</param>
      <returns>The enumeration</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="count" /> is less than 0</exception>
    </member>
    <member name="M:Gallio.Framework.Data.Generators.Linear(System.Double,System.Int32,System.Double)">
      <summary>Creates an enumeration that yields a linear sequence of <see cref="T:System.Double" /> values forming an arithmetic progression.</summary>
      <param name="firstValue">The first value to generate</param>
      <param name="count">The number of values to generate</param>
      <param name="step">The increment for each successive value</param>
      <returns>The enumeration</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="count" /> is less than 0</exception>
    </member>
    <member name="T:Gallio.Framework.Data.IntersectionMergeStrategy">
      <summary>
        <para> The intersection merge strategy combines the items from multiple providers by discarding items whose values do not appear in the items of all other providers. If the same item appears more than once within any given provider, when it will be enumerated only as often as the least number of repetitions of that item that appear in other providers. </para>
        <para> Uniqueness is determined by the natural equality of each bound value in the item. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.IntersectionMergeStrategy.Instance">
      <summary>Gets the singleton instance of the strategy. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IntersectionMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Merges the items from each provider into a new sequence.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindings">The bindings</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The merged sequence of items</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ItemSequenceDataSet">
      <summary>A data set constructed from a sequence of data items. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.ItemSequenceDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="T:Gallio.Framework.Data.JoinedDataSet">
      <summary>
        <para> A joined data set is an aggregate data set that joins items from each of zero or more other data sets according to a <see cref="T:Gallio.Framework.Data.IJoinStrategy" />. </para>
        <para> A joined data set supports queries with two kinds of <see cref="T:Gallio.Framework.Data.DataBinding" />: <list type="bullet"><item>A translated binding produced by <see cref="M:Gallio.Framework.Data.JoinedDataSet.TranslateBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)" /> is scoped to a particular <see cref="T:Gallio.Framework.Data.IDataSet" />. When a query occurs using a translated binding, only that <see cref="T:Gallio.Framework.Data.IDataSet" nolink="true" /> and its <see cref="T:Gallio.Framework.Data.IDataItem" /> components are consulted.</item><item>Any other binding is treated as if it referred to the joined <see cref="T:Gallio.Framework.Data.IDataItem" nolink="true" /> including all of the contributions of all data sets. The joined <see cref="T:Gallio.Framework.Data.IDataItem" nolink="true" /> is conceptually laid out such that the columns of first <see cref="T:Gallio.Framework.Data.IDataSet" nolink="true" /> appear first followed by those of successive <see cref="T:Gallio.Framework.Data.IDataSet" nolink="true" />s in order. To maintain this illustion, the <see cref="P:Gallio.Framework.Data.DataBinding.Index" /> component of the binding is adjusted internally before passing any queries on to the <see cref="T:Gallio.Framework.Data.IDataSet" nolink="true" />s. Thereafter a binding will be consumed by the first <see cref="T:Gallio.Framework.Data.IDataSet" nolink="true" /> that returns <c>true</c> from its <see cref="M:Gallio.Framework.Data.IDataSet.CanBind(Gallio.Framework.Data.DataBinding)" /> method after index-adjustment. </item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.JoinedDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.JoinedDataSet.Strategy">
      <summary>Gets or sets the <see cref="T:Gallio.Framework.Data.IJoinStrategy" />. By default the strategy is <see cref="T:Gallio.Framework.Data.CombinatorialJoinStrategy" />.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Data.JoinedDataSet.AddDataSet(Gallio.Framework.Data.IDataSet)">
      <summary>Adds a data set to the aggregate.</summary>
      <param name="dataSet">The data set to add</param>
    </member>
    <member name="M:Gallio.Framework.Data.JoinedDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.JoinedDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="M:Gallio.Framework.Data.JoinedDataSet.TranslateBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)">
      <summary>
        <para> Translates a binding into one that expresses a query that is scoped over a particular data set that is associated with this interface. </para>
        <para> If the binding contains an index parameter, the translated binding will contain an index that is offset based on the position of the contents of the data set within the items of the joined aggregate. </para>
      </summary>
      <param name="dataSet">The data set</param>
      <param name="binding">The binding</param>
      <returns>The translated binding</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataSet" /> or <paramref name="binding" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="dataSet" /> is not a member of this instance</exception>
    </member>
    <member name="T:Gallio.Framework.Data.ListDataItem`1">
      <summary>A list data item contains a list of static data values combined with optional metadata for the item. Data binding occurs based on the binding index alone. This class cannot be inherited.</summary>
      <typeparam name="T">The value type</typeparam>
    </member>
    <member name="M:Gallio.Framework.Data.ListDataItem`1.GetBindingsForInformalDescription">
      <summary>Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete.</summary>
      <returns>The enumeration of bindings</returns>
    </member>
    <member name="T:Gallio.Framework.Data.MergedDataSet">
      <summary>A merged data set is an aggregate data set that selects items from each of zero or more other data sets according to a <see cref="T:Gallio.Framework.Data.IMergeStrategy" />.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.MergedDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.MergedDataSet.Strategy">
      <summary>Gets or sets the <see cref="T:Gallio.Framework.Data.IMergeStrategy" />. By default the strategy is <see cref="T:Gallio.Framework.Data.ConcatenationMergeStrategy" />.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Data.MergedDataSet.AddDataSet(Gallio.Framework.Data.IDataSet)">
      <summary>Adds a data set to the aggregate.</summary>
      <param name="dataSet">The data set to add</param>
    </member>
    <member name="M:Gallio.Framework.Data.MergedDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.MergedDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="T:Gallio.Framework.Data.MethodInvocationSpec">
      <summary>Encapsulates a specification for invoking a method given values for its generic parameters and formal parameters. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.MethodInvocationSpec.Method">
      <summary>Gets the method or generic method definition to be invoked.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.MethodInvocationSpec.ResolvedArguments">
      <summary>
        <para> Gets the resolved method arguments. </para>
        <para> The values have already been converted to appropriate types for invoking the method. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.MethodInvocationSpec.ResolvedMethod">
      <summary>Gets the resolved method given any generic method arguments that may have been provided as slot values.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.MethodInvocationSpec.ResolvedType">
      <summary>Gets the resolved type that declares the method.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.MethodInvocationSpec.Invoke(System.Object)">
      <summary>Invokes the method.</summary>
      <param name="obj">The object on which to invoke the method. This value is ignored if the method is static.</param>
      <returns>The method result value</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null but the method is non-static</exception>
      <exception cref="T:System.Exception">Any exception thrown by the invoked method</exception>
    </member>
    <member name="T:Gallio.Framework.Data.NullDataItem">
      <summary>A null data item simply returns a null value on each request. It has no metadata. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.NullDataItem.Instance">
      <summary>Gets the singleton null data item instance. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.NullDataItem.IsDynamic">
      <summary>
        <para> Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. </para>
        <para> For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Data.NullDataItem.GetBindingsForInformalDescription">
      <summary>Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete.</summary>
      <returns>The enumeration of bindings</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ObjectCreationSpec">
      <summary>Encapsulates a specification for creating objects given values for a type's generic parameters, constructor parameters, fields and properties. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedConstructor">
      <summary>Gets the resolved constructor, or null if the type was abstract or if it was a struct and the default struct constructor is being use.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedConstructorArguments">
      <summary>
        <para> Gets the resolved constructor arguments. </para>
        <para> The values have already been converted to appropriate types for invoking the constructor. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedFieldValues">
      <summary>
        <para> Gets the resolved fields and their values. </para>
        <para> The values have already been converted to appropriate types for setting the fields. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedPropertyValues">
      <summary>
        <para> Gets the resolved properties and their values. </para>
        <para> The values have already been converted to appropriate types for setting the properties. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedType">
      <summary>Gets the resolved type given any generic type arguments that may have been provided as slot values.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.ObjectCreationSpec.Type">
      <summary>Gets the type or generic type definition to be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.ObjectCreationSpec.CreateInstance">
      <summary>Creates an instance of the resolved type and initializes it using constructor parameter, field and property slot values.</summary>
      <returns>The new instance, never null</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the type is not instantiable</exception>
    </member>
    <member name="T:Gallio.Framework.Data.ObjectDataBinder">
      <summary>An object data binder creates objects and binds values to its slots such as generic type parameters, constructor parameters, fields and properties.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.ObjectDataBinder.RegisterImpl(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
      <summary>Implementation of <see cref="M:Gallio.Framework.Data.BaseDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)" />.</summary>
      <param name="context">The data binding context, not null</param>
      <param name="resolver">The data source resolver, not null</param>
      <returns>The data binding accessor</returns>
    </member>
    <member name="M:Gallio.Framework.Data.ObjectDataBinder.SetSlotBinder(Gallio.Reflection.ISlotInfo,Gallio.Framework.Data.IDataBinder)">
      <summary>Sets the binder for a slot.</summary>
      <param name="slot">The slot</param>
      <param name="binder">The binder</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="slot" /> or <paramref name="binder" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.PairwiseJoinStrategy">
      <summary>
        <para> The pairwise strategy constructs a limited number of combinations of the items within the data providers such that they cover all possible pairs of values from each data source. </para>
        <para> This strategy can be more efficient than one based on exhaustively testing all combinations since many test failures result from the interaction of a relatively small number of factors: often just two of them. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.PairwiseJoinStrategy.Instance">
      <summary>Gets the singleton instance of the strategy. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.PairwiseJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
      <summary>Joins the items from each provider into a sequence of aggregate items.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindingsPerProvider">The list of bindings per provider</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the <paramref name="providers" /> collection</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ScalarDataBinder">
      <summary>A scalar data binder queries a specified data source with a data binding and converts the resulting value to the requested type. It does nothing during unbinding.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.ScalarDataBinder.RegisterImpl(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
      <summary>Implementation of <see cref="M:Gallio.Framework.Data.BaseDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)" />.</summary>
      <param name="context">The data binding context, not null</param>
      <param name="resolver">The data source resolver, not null</param>
      <returns>The data binding accessor</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ScalarDataItem`1">
      <summary>A scalar data item represents a single static data value combined with optional metadata for the item. Data binding occurs whenever the binding index is 0. This class cannot be inherited.</summary>
      <typeparam name="T">The value type</typeparam>
    </member>
    <member name="M:Gallio.Framework.Data.ScalarDataItem`1.GetBindingsForInformalDescription">
      <summary>Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete.</summary>
      <returns>The enumeration of bindings</returns>
    </member>
    <member name="T:Gallio.Framework.Data.SequentialJoinStrategy">
      <summary>The sequential join strategy combines items from each data provider sequentially. If one provider contains fewer items than the others, the sequential join strategy will insert a <see cref="T:Gallio.Framework.Data.NullDataItem" /> in its place until all other providers have been exhausted. This is similar to performing an "outer join" of multiple sources by ordinal index. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.SequentialJoinStrategy.Instance">
      <summary>Gets the singleton instance of the strategy. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.SequentialJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
      <summary>Joins the items from each provider into a sequence of aggregate items.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindingsPerProvider">The list of bindings per provider</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the <paramref name="providers" /> collection</returns>
    </member>
    <member name="T:Gallio.Framework.Data.SimpleDataItem">
      <summary>An implementation of <see cref="T:Gallio.Framework.Data.IDataItem" /> that stores the dynamic flag and metadata. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.SimpleDataItem.IsDynamic">
      <summary>
        <para> Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. </para>
        <para> For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Data.SimpleDataItem.PopulateMetadataImpl(Gallio.Collections.PropertyBag)">
      <summary>Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadata(Gallio.Collections.PropertyBag)" />.</summary>
      <param name="map">The metadata map to populate, never null</param>
    </member>
    <member name="T:Gallio.Framework.Data.UnionMergeStrategy">
      <summary>
        <para> The union merge strategy combines the items from multiple providers by discarding all items whose values duplicate those of other items that have already been enumerated. </para>
        <para> Uniqueness is determined by the natural equality of each bound value in the item. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.UnionMergeStrategy.Instance">
      <summary>Gets the singleton instance of the strategy. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.UnionMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Merges the items from each provider into a new sequence.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindings">The bindings</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The merged sequence of items</returns>
    </member>
    <member name="T:Gallio.Framework.Data.ValueSequenceDataSet">
      <summary>A data set constructed from an enumerated sequence of values. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.ValueSequenceDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="T:Gallio.Framework.Data.XmlDataSet">
      <summary>An XML data set selects nodes from an XML document using XPath expressions. The selected nodes are returned as <see cref="T:System.Xml.XPath.XPathNavigator" /> objects.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.XmlDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.XmlDataSet.DataLocationName">
      <summary>
        <para> Gets the name of the location that is providing the data, or null if none. </para>
        <para> The data location name and line number are exposed as <see cref="F:Gallio.Model.MetadataKeys.DataLocation" /> metadata when provided. </para>
      </summary>
      <value>The default value is null.</value>
    </member>
    <member name="M:Gallio.Framework.Data.XmlDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
      <summary>Determines whether a binding can be satisfied by the data set.</summary>
      <param name="binding">The data binding, not null</param>
      <returns>True if the binding can be satisfied</returns>
    </member>
    <member name="M:Gallio.Framework.Data.XmlDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Enumerates the data items in the data set.</summary>
      <param name="bindings">The data bindings, not null</param>
      <param name="includeDynamicItems">If true, includes dynamic items</param>
      <returns>The enumeration of data items in the combined data set</returns>
    </member>
    <member name="T:Gallio.Framework.Data.IDataAccessor">
      <summary>A data accessor extracts a value from a <see cref="T:Gallio.Framework.Data.IDataItem" />.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)">
      <summary>Gets a value derived from the <see cref="T:Gallio.Framework.Data.IDataItem" />.</summary>
      <param name="item">The data item</param>
      <returns>The value</returns>
      <exception cref="T:Gallio.Framework.Data.DataBindingException">Thrown if the data binding fails</exception>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="item" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.IDataBinder">
      <summary>
        <para> A data binder specifies how to produce values that are suitable for data binding in some context. </para>
        <para> The typical <see cref="T:Gallio.Framework.Data.IDataBinder" /> lifecycle is as follows: <list type="bullet"><item>First, a <see cref="T:Gallio.Framework.Data.DataBindingContext" /> is created.</item><item>Next the client calls <see cref="M:Gallio.Framework.Data.IDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)" /> for each <see cref="T:Gallio.Framework.Data.IDataBinder" nolink="true" />, supplying the <see cref="T:Gallio.Framework.Data.DataBindingContext" nolink="true" /> and a <see cref="T:Gallio.Framework.Data.IDataSourceResolver" /> for resolving data sources.</item><item>Then the client calls <see cref="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)" /> and begins enumerating over the items.</item><item>For each item, the client calls <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)" /> using the <see cref="T:Gallio.Framework.Data.IDataAccessor" /> produced by the <see cref="T:Gallio.Framework.Data.IDataBinder" nolink="true" />s to obtain the bound values.</item><item>When finished with an item, the client disposes it.</item></list></para>
        <para> The lifecycle may also be explained in terms of three phases from the perspective of a <see cref="T:Gallio.Framework.Data.IDataBinder" nolink="true" />. <list type="bullet"><item><term>Prebinding</term><description>The <see cref="M:Gallio.Framework.Data.IDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)" nolink="true" /> method is called to register interest in particular <see cref="T:Gallio.Framework.Data.IDataSet" />s with the <see cref="T:Gallio.Framework.Data.DataBindingContext" nolink="true" />.</description></item><item><term>Binding</term><description>The <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)" nolink="true" /> method is called to obtain bound values from a <see cref="T:Gallio.Framework.Data.IDataItem" />.</description></item><item><term>Unbinding</term><description>The <see cref="T:Gallio.Framework.Data.IDataItem" nolink="true" />'s <see cref="M:System.IDisposable.Dispose" /> method is called to release resources used by the bound values.</description></item></list></para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Data.IDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
      <summary>Registers the <see cref="T:Gallio.Framework.Data.IDataBinder" />'s requests to query particular <see cref="T:Gallio.Framework.Data.IDataSet" />s with the <see cref="T:Gallio.Framework.Data.DataBindingContext" />.</summary>
      <param name="context">The data binding context</param>
      <param name="resolver">The data source resolver</param>
      <returns>The data binding accessor to use for obtaining bound values from <see cref="T:Gallio.Framework.Data.IDataItem" />s produced by the <see cref="T:Gallio.Framework.Data.DataBindingContext" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context" /> or <paramref name="resolver" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.IDataItem">
      <summary>
        <para> A data item is an opaque representation of a collection of values and metadata that may be retrieved using data bindings that encode the appropriate lookup rules into the item. </para>
        <para> Data items may have very different forms: <list type="bullet"><item>Scalar-like items: Items that always yield a single value, possibly a constant</item><item>Row-like items: Items that yield several values in response to index-based data bindings or named column paths</item><item>Structured items: Items that yield values by binding to paths within the item or by resolving custom data binding expressions</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Data.IDataItem.IsDynamic">
      <summary>
        <para> Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. </para>
        <para> For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Data.IDataItem.GetBindingsForInformalDescription">
      <summary>Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete.</summary>
      <returns>The enumeration of bindings</returns>
    </member>
    <member name="M:Gallio.Framework.Data.IDataItem.GetValue(Gallio.Framework.Data.DataBinding)">
      <summary>Gets the value of the specified binding.</summary>
      <param name="binding">The data binding, never null</param>
      <returns>The value</returns>
      <exception cref="T:Gallio.Framework.Data.DataBindingException">Thrown if the <paramref name="binding" /> cannot be resolved or if its value cannot be obtained</exception>
    </member>
    <member name="M:Gallio.Framework.Data.IDataItem.PopulateMetadata(Gallio.Collections.PropertyBag)">
      <summary>
        <para> Populates the specified metadata map with key/value pairs associated with the data item, if any. </para>
        <para> For example, the metadata may contain a description that serves as documentation of the contents of the data item or of the test scenario that is exercised by the contents of the data item. This metadata may be injected into test instances created with the contents of this data item. </para>
      </summary>
      <param name="map">The metadata map</param>
    </member>
    <member name="T:Gallio.Framework.Data.IDataProvider">
      <summary>A data provider generates an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem" />s given a collection of <see cref="T:Gallio.Framework.Data.DataBinding" />s to satisfy.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IDataProvider.GetItems(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Gets an enumeration of data items that can supply values for a given collection of bindings. It should produce items even if some of the requested bindings cannot be fulfilled.</summary>
      <param name="bindings">The bindings that are requested</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The enumeration of data items</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="bindings" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.IDataSet">
      <summary>A data set provides data items for data binding and describes whether is supports particular bindings.</summary>
    </member>
    <member name="P:Gallio.Framework.Data.IDataSet.ColumnCount">
      <summary>Gets the number of columns in an indexed data set.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IDataSet.CanBind(Gallio.Framework.Data.DataBinding)">
      <summary>Returns true if the data set can provide a value for the specified binding.</summary>
      <param name="binding">The binding</param>
      <returns>True if the data set can provide a value for the binding</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="binding" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.IDataSourceResolver">
      <summary>Resolves data sources by name.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IDataSourceResolver.ResolveDataSource(System.String)">
      <summary>Resolves the data source with the specified name.</summary>
      <param name="name">The data source name</param>
      <returns>The resolved data source, or null if none found</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Data.IJoinStrategy">
      <summary>A join strategy combines items from multiple providers into products according to some algorithm.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
      <summary>Joins the items from each provider into a sequence of aggregate items.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindingsPerProvider">The list of bindings per provider</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the <paramref name="providers" /> collection</returns>
    </member>
    <member name="T:Gallio.Framework.Data.IMergeStrategy">
      <summary>A merge strategy combines items from multiple providers into a sequence according to some algorithm.</summary>
    </member>
    <member name="M:Gallio.Framework.Data.IMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
      <summary>Merges the items from each provider into a new sequence.</summary>
      <param name="providers">The list of providers</param>
      <param name="bindings">The bindings</param>
      <param name="includeDynamicItems">If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori.</param>
      <returns>The merged sequence of items</returns>
    </member>
    <member name="T:Gallio.Framework.Data.FactoryKind">
      <summary>
        <para> Specifies the kind of factory member referenced by <see cref="T:Gallio.Framework.Data.FactoryDataSet" />. </para>
        <para> Each kind of factory expresses its contents by returning enumerations of data sets, data items, object arrays and single objects. </para>
        <para> The kind of a factory may be automatically determined or it may be explicitly specified in cases where it may be ambiguous. </para>
      </summary>
    </member>
    <member name="F:Gallio.Framework.Data.FactoryKind.Auto">
      <summary>
        <para> Automatically determines the type of factory based on the type of element returned by the enumeration. </para>
        <para>
          <list type="bullet">
            <item>If the element is a <see cref="T:Gallio.Framework.Data.IDataSet" /> then it is processed in the same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.DataSet" />.</item>
            <item>If the element is a <see cref="T:Gallio.Framework.Data.IDataItem" /> (such as <see cref="F:Gallio.Framework.Data.FactoryKind.DataItem" />, <see cref="T:Gallio.Framework.Data.ScalarDataItem`1" /> or <see cref="T:Gallio.Framework.Data.ListDataItem`1" />) then it is processed in the same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.DataItem" nolink="true" />.</item>
            <item>If the element is an array then it is processed in the same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.ObjectArray" />.</item>
            <item>Otherwise the element is process in the same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.Object" />.</item>
          </list>
        </para>
        <para> Refer to the other factory kinds for usage examples. </para>
      </summary>
    </member>
    <member name="F:Gallio.Framework.Data.FactoryKind.DataSet">
      <summary>Specifies that the factory returns an enumeration <see cref="T:Gallio.Framework.Data.IDataSet" />s whose items are to be consumed.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.FactoryKind.DataItem">
      <summary>Specifies that the factory returns an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem" />s (such as <see cref="T:Gallio.Framework.Data.DataRow" />, <see cref="T:Gallio.Framework.Data.ScalarDataItem`1" />, or <see cref="T:Gallio.Framework.Data.ListDataItem`1" />).</summary>
    </member>
    <member name="F:Gallio.Framework.Data.FactoryKind.ObjectArray">
      <summary>Specifies that the factory returns an enumeration of object arrays that describe successive items.</summary>
    </member>
    <member name="F:Gallio.Framework.Data.FactoryKind.Object">
      <summary>Specifies that the factory returns an enumeration of single object values.</summary>
    </member>
    <member name="T:Gallio.Framework.Formatting.BooleanFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Boolean" />. </para>
        <para> Formats values as "true" or "false". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.BooleanFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.BooleanFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.ByteFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Byte" />. </para>
        <para> Formats values as two digit hex values like "0xa5". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.ByteFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.ByteFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.CharFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Char" />. </para>
        <para> Formats values as literals like: "'x'" or "'\n'". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.CharFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.CharFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.ConvertToStringFormattingRule">
      <summary>A default formatting rule for objects based on using the <see cref="T:Gallio.Framework.Conversions.IConverter" /> to convert the value to a string. This rule has minimum priority so that all other formatting rules should override it in principle. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.ConvertToStringFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.ConvertToStringFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.DateTimeFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.DateTime" />. </para>
        <para> Formats values in the invariant round-trip format like: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.DateTimeFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.DateTimeFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.DBNullFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.DBNull" />. </para>
        <para> Formats values as "dbnull". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.DBNullFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.DBNullFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.DecimalFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Decimal" />. </para>
        <para> Formats values like: "5.6m". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.DecimalFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.DecimalFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.DictionaryEntryFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Collections.DictionaryEntry" />. </para>
        <para> Formats values as "\"key\": \"value\"". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.DictionaryEntryFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.DictionaryEntryFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.DoubleFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Double" />. </para>
        <para> Formats values like: "5.6". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.DoubleFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.DoubleFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.EnumerableFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Collections.IEnumerable" />. </para>
        <para> Formats values as "[1, 2, 3]". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.EnumerableFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.EnumerableFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.Formatter">
      <summary>Service locator for <see cref="T:Gallio.Framework.Formatting.IFormatter" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Formatting.Formatter.Instance">
      <summary>Gets the global formatter singleton.</summary>
    </member>
    <member name="T:Gallio.Framework.Formatting.FormattingRulePriority">
      <summary>Typical <see cref="T:Gallio.Framework.Formatting.IFormattingRule" /> priority values to use as guidelines. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Formatting.FormattingRulePriority.Best">
      <summary>The best possible formatting rule priority. A rule with this priority will override all other matching rules. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Formatting.FormattingRulePriority.Better">
      <summary>A better than typical rule. This value should be used for cases where the typical rule is not quite precise enough. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Formatting.FormattingRulePriority.Default">
      <summary>The default formatting rule priority. A rule with this priority will be overridden by all other matching rules. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Formatting.FormattingRulePriority.Fallback">
      <summary>Fallback rule priority. Represents a rule to be applied if the typical case fails. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Formatting.FormattingRulePriority.Generic">
      <summary>Generic rule priority. Represents a generic rule that can represent objects of any type structurally. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Formatting.FormattingRulePriority.Typical">
      <summary>Typical rule priority. This is a good starting point for rule priorities. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Framework.Formatting.IntegerFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.UInt16" />, <see cref="T:System.UInt32" />, and <see cref="T:System.UInt64" />. </para>
        <para> Formats values like: "5", "123", "-12". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.IntegerFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.IntegerFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.KeyValuePairFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Collections.Generic.KeyValuePair`2" />. </para>
        <para> Formats values as "\"key\": \"value\"". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.KeyValuePairFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.KeyValuePairFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.RuleBasedFormatter">
      <summary>A rule-based formatter uses a set of <see cref="T:Gallio.Framework.Formatting.IFormattingRule" />s to format values appropriately.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.RuleBasedFormatter.Format(System.Object)">
      <summary>Formats an object to a string for display.</summary>
      <param name="obj">The object to format, may be null</param>
      <returns>The formatted string, never null and never an empty string</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.SByteFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.SByte" />. </para>
        <para> Formats values as two digit signed hex values like "0x55" and "-0x55". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.SByteFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.SByteFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.SingleFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Single" />. </para>
        <para> Formats values like: "5.6f". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.SingleFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.SingleFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.StringFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.String" />. </para>
        <para> Formats values as literals like: ""abc\ndef"". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.StringFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.StringFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.StructuralFormattingRule">
      <summary>A formatting rule that describes the structure of objects in terms of their constituent properties and fields.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.StructuralFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.StructuralFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.StubFormatter">
      <summary>A formatter that is used when the runtime is not initialized.</summary>
    </member>
    <member name="T:Gallio.Framework.Formatting.TypeFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Type" />. </para>
        <para> Formats values like: string, MyType.Nested, int[], byte*, similar to C#. </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.TypeFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.TypeFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.XPathNavigableFormattingRule">
      <summary>
        <para> A formatting rule for <see cref="T:System.Xml.XPath.IXPathNavigable" />. </para>
        <para> Formats values as "&lt;root /&gt;". </para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.XPathNavigableFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.XPathNavigableFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.IFormatter">
      <summary>Provides services for formatting objects for display.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.IFormatter.Format(System.Object)">
      <summary>Formats an object to a string for display.</summary>
      <param name="obj">The object to format, may be null</param>
      <returns>The formatted string, never null and never an empty string</returns>
    </member>
    <member name="T:Gallio.Framework.Formatting.IFormattingRule">
      <summary>A formatting rule encapsulates an algorithm for formatting values of particular types to strings for presentation.</summary>
    </member>
    <member name="M:Gallio.Framework.Formatting.IFormattingRule.Format(System.Object,Gallio.Framework.Formatting.IFormatter)">
      <summary>Formats the specified object.</summary>
      <param name="obj">The object to format, never null</param>
      <param name="formatter">The formatter to use for recursive formatting, never null</param>
      <returns>The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string</returns>
    </member>
    <member name="M:Gallio.Framework.Formatting.IFormattingRule.GetPriority(System.Type)">
      <summary>Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values.</summary>
      <param name="type">The type of object, never null</param>
      <returns>The priority of this rule, or null if the rule does not support formatting the specified object type</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.AnnotationPatternAttribute">
      <summary>
        <para> Associates an annotation message with a code element. When the code element is processed as part of building some other test, the annotation message will be emitted. This may be used to signal error, warning, and informational messages associated with the code element in question. </para>
        <para> Many annotations are automatically generated by the framework. For example, improperly used attributes generally cause error annotations to be emitted. This attribute provides an easy way for test authors to leverage the annotation mechanism for other discretionary purposes where it is desirable to draw attention to a particular code element. </para>
        <para> Note that the annotation will only be emitted if it is encountered during the process of building a test. If for some reason the annotated code element is not processed, then the attribute will have no effect. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.AnnotationPatternAttribute.Details">
      <summary>Gets or sets optional detail text of the annotation, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.AnnotationPatternAttribute.Message">
      <summary>Gets the annotation message.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.AnnotationPatternAttribute.Type">
      <summary>Gets the annotation type.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.AnnotationPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.BaseBuilder">
      <summary>Abstract base class for typical builder implementations. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseBuilder.AddDeferredAction(Gallio.Reflection.ICodeElementInfo,System.Int32,Gallio.Action)">
      <summary>Registers a deferred action to be performed when <see cref="M:Gallio.Framework.Pattern.ISupportDeferredActions.ApplyDeferredActions" /> is called.</summary>
      <param name="codeElement">The associated code element, used to report errors if the deferred action throws an exception</param>
      <param name="order">The order in which the action should be applied, from least order to greatest</param>
      <param name="deferredAction">The action to perform</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseBuilder.ApplyDeferredActions">
      <summary>Applies all pending deferred in order and clears the list.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseBuilder.GetTestModelBuilder">
      <summary>Gets the test model builder.</summary>
      <returns>The test model builder</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.BasePattern">
      <summary>Abstract base implementation of <see cref="T:Gallio.Framework.Pattern.IPattern" /> with do-nothing implementations. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.BasePattern.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.BasePattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.BasePattern.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.BasePattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.BasePatternTestFrameworkExtension">
      <summary>A base implementation of <see cref="T:Gallio.Framework.Pattern.IPatternTestFrameworkExtension" /> that does nothing.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.BasePatternTestFrameworkExtension.GetReferencedTools(Gallio.Reflection.IAssemblyInfo)">
      <summary>
        <para> Gets information about the tools that are used by the specified test assembly. The tool information will be included in the report as part of the framework node that contains the assembly. </para>
        <para> This method is used by authors of tools that are derived from the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework" /> to provide brand and version information about the tool so that it will be visible to end users. </para>
        <para> If no tools are referenced by the assembly, it will be ignored by the <see cref="T:Gallio.Framework.Pattern.PatternTestExplorer" />. </para>
      </summary>
      <param name="assembly">The test assembly</param>
      <returns>The tool information</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.BaseTestComponentBuilder">
      <summary>Abstract base class for test component builders. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.BaseTestComponentBuilder.CodeElement">
      <summary>Gets a reference to the point of definition of this test component in the code, or null if unknown.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.BaseTestComponentBuilder.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.BaseTestComponentBuilder.Name">
      <summary>Gets or sets the name of the component.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.AddMetadata(System.String,System.String)">
      <summary>Adds a metadata key value pair.</summary>
      <param name="key">The metadata key</param>
      <param name="value">The value to add</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.GetTestComponent">
      <summary>Gets the underlying test component.</summary>
      <returns>The test component</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.GetTestModelBuilder">
      <summary>Gets the test model builder.</summary>
      <returns>The test model builder</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.ToTestComponent">
      <summary>Gets the underlying test component.</summary>
      <returns>The underlying test component</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern">
      <summary>The pattern used to bootstrap test enumeration for assemblies.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern.Instance">
      <summary>Gets the singleton instance of the pattern. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern.DefaultAssemblyPattern">
      <summary>Gets the default pattern to apply to assemblies that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.ContributionMethodPatternAttribute">
      <summary>A contribution method pattern attribute applies decorations to a containing scope such as by introducing a new setup or teardown action to a test. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.DecorateContainingScope(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)">
      <summary>Applies decorations to the containing test.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="method">The method to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="method">The method</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.DataPatternAttribute">
      <summary>
        <para> The data pattern attribute applies a data source to a fixture or test parameter declaratively. It can be attached to a fixture class, a public property or field of a fixture, a test method or a test method parameter. When attached to a property or field of a fixture, implies that the property or field is a fixture parameter (so the <see cref="T:Gallio.Framework.Pattern.TestParameterPatternAttribute" /> may be omitted). </para>
        <para> The order in which items contributed by a data pattern attribute are use can be controlled via the <see cref="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order" /> property. The contents of data sets with lower order indices are processed before those with higher indices. </para>
        <example>
          <code>
            // Ensures that the rows are processed in exactly the order they appear.
            [Test]
            [Row(1, "a"), Order=1)]
            [Row(2, "b"), Order=2)]
            [Row(3, "c"), Order=3)]
            public void Test(int x, string y) { ... }
            </code>
        </example>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DataPatternAttribute.SourceName">
      <summary>
        <para> Gets or sets the name of the data source to create so that the values produced by this attribute can be referred to elsewhere. Multiple data attributes may use the same data source name to produce a compound data source consisting of all of their values combined. </para>
        <para> If no name is given to the data source (or it is an empty string), the data source is considered anonymous. An anonymous data source is only visible within the scope of the code element with which the data source declaration is associated. By default, test parameters are bound to the anonymous data source of their enclosing scope. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.DataPatternAttribute.PopulateDataSource(Gallio.Framework.Pattern.IPatternScope,Gallio.Framework.Data.DataSource,Gallio.Reflection.ICodeElementInfo)">
      <summary>Populates the data source with the contributions of this attribute.</summary>
      <param name="scope">The scope</param>
      <param name="dataSource">The data source</param>
      <param name="codeElement">The code element</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DataPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DataPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.DeclarativePatternResolver">
      <summary>A declarative pattern resolver based on <see cref="T:Gallio.Framework.Pattern.PatternAttribute" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.DeclarativePatternResolver.Instance">
      <summary>Gets the singleton instance of the declarative pattern resolver. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.DeclarativePatternResolver.GetPatterns(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the patterns associated with the specified code element.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of patterns</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.DecoratorPatternAttribute">
      <summary>
        <para> A decorator attribute applies contributions to a test component in scope such as a test or test parameter generated by some other pattern attribute. </para>
        <para> Occasionally the order in which decorators are applied is significant so this type provides a <see cref="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order" /> property to specify an explicit ordering when required. All decorators that apply to a given test component declaration are applied in increasing <see cref="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order" nolink="true" />. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order">
      <summary>Gets or sets the order in which the decorator should be applied. Decorators with lower order indices values are applied before decorators with higher ones. In the case of a tie, an arbitrary choice is made among decorators with the same order index to determine the order in which they will be processed.</summary>
      <value>The default order index is 0.</value>
    </member>
    <member name="T:Gallio.Framework.Pattern.DefaultPatternEvaluator">
      <summary>Default implementation of a pattern evaluator.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternEvaluator.TestModelBuilder">
      <summary>Gets the builder for the test model under construction.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
      <summary>Consumes the specified code element.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to consume</param>
      <param name="skipChildren">If true, instructs the primary pattern to defer populating child tests</param>
      <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved for the code element. May be null if none.</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.CreateTopLevelTestScope(System.String,Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a top-level test as a child of the root test. Returns the scope of the newly created top-level test.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The builder for the top-level test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetDeclaredTests(Gallio.Reflection.ICodeElementInfo)">
      <summary>Finds tests that are declared by the specified <see cref="T:Gallio.Reflection.ICodeElementInfo" />.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of tests</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetPatterns(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets all patterns associated with a code element.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of patterns, or null if none</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetPrimaryPattern(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the primary pattern associated with a code element, or null if none.</summary>
      <param name="codeElement">The code element</param>
      <returns>The primary pattern, or null if none</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetScopes(Gallio.Reflection.ICodeElementInfo)">
      <summary>Finds scopes that are associated with the specified <see cref="T:Gallio.Reflection.ICodeElementInfo" /> and returns an enumeration of their <see cref="T:Gallio.Framework.Pattern.IPatternScope" /> objects.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of scopes</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.HasPatterns(Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if a code element has one or more associated patterns.</summary>
      <param name="codeElement">The code element</param>
      <returns>True if the code element has an associated pattern</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.IsTest(Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.IPattern)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="codeElement">The code element</param>
      <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved for the code element. May be null if none.</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Processes the specified code element.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.RegisterScope(Gallio.Framework.Pattern.IPatternScope)">
      <summary>Registers the scope so that it can be resolved later by <see cref="M:Gallio.Framework.Pattern.IPatternEvaluator.GetScopes(Gallio.Reflection.ICodeElementInfo)" />.</summary>
      <param name="scope">The scope</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.DefaultPatternScope">
      <summary>Default implementation of a pattern scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.CanAddChildTest">
      <summary>Returns true if a child test can be added to the test within scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.CanAddTestParameter">
      <summary>Returns true if a test parameter can be added to the test within scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.CodeElement">
      <summary>Gets the code element associated with the scope, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.Evaluator">
      <summary>Gets the pattern evaluator.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.IsTestDeclaration">
      <summary>
        <para> Returns true if the scope represents a test declaration. </para>
        <para> An arbitrary scope nested within a test declaration scope is not itself considered a test declaration scope unless it also represents a test declaration. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.IsTestParameterDeclaration">
      <summary>
        <para> Returns true if the scope represents a test parameter declaration. </para>
        <para> An arbitrary scope nested within a test parameter declaration scope is not itself considered a test parameter declaration scope unless it also represents a test parameter declaration. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestBuilder">
      <summary>Gets a builder for applying contributions to the test currently being constructed within this scope. Never null.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestComponentBuilder">
      <summary>Gets a builder for applying contributions to the test component currently being constructed within this scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestDataContextBuilder">
      <summary>Gets a builder for applying contributions to the current test data context within the scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestModelBuilder">
      <summary>Gets a builder for applying contributions to the test model.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestParameterBuilder">
      <summary>Gets a builder for applying contributions to the test parameter currently being constructed within this scope, if there is one, or null if there is no test parameter in scope.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)">
      <summary>Adds an action to the scope that enables a pattern to lazily populate the test model with components generated in nested scopes. This is used when <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> is called with the option to skip children.</summary>
      <param name="populator">A <see cref="T:Gallio.Framework.Pattern.DeferredComponentPopulator" /> supplied by the pattern to populate its components lazily</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.Consume(Gallio.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
      <summary>Consumes the specified code element using this scope as the containing scope.</summary>
      <param name="codeElement">The code element to consume</param>
      <param name="skipChildren">If true, instructs the primary pattern to defer populating child tests</param>
      <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved for the code element. May be null if none.</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateChildTestDataContextScope(Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a child test data context derived from the builders of this scope. Returns the scope of the newly created child test data context.</summary>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The scope of the newly created child test data context</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateChildTestScope(System.String,Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a child test with its own child data context derived from the builders of this scope. Returns the scope of the newly created child test.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The scope of the newly created child test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateScope(Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestBuilder,Gallio.Framework.Pattern.ITestParameterBuilder,Gallio.Framework.Pattern.ITestDataContextBuilder,System.Boolean)">
      <summary>Creates and registers a scope for a test component.</summary>
      <param name="codeElement">The code element to associate with the scope</param>
      <param name="testBuilder">The test builder</param>
      <param name="testParameterBuilder">The test parameter builder, or null if the scope is to be associated to the test only</param>
      <param name="testDataContextBuilder">The test data context builder</param>
      <param name="isDeclaration">If true, the scope represents the point of declaration of the test component with which it is associated</param>
      <returns>The new scope</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateTestParameterScope(System.String,Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a test parameter for the test in scope with its own child data context derived from the builders of this scope. Returns the scope of the newly created test parameter.</summary>
      <param name="name">The test parameter name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The scope of the newly created test parameter</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.PopulateDeferredComponents(Gallio.Reflection.ICodeElementInfo)">
      <summary>Asks all registered deferred component populators to build components whose construction had previously been deferred.</summary>
      <param name="codeElementHint">The code element hint to identify the location of the particular components to populate, or null to populate them all</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.Process(Gallio.Reflection.ICodeElementInfo)">
      <summary>Processes the specified code element using this scope as the current scope.</summary>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.DefaultTestBuilder">
      <summary>Default implementation of a test model builder.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.ApartmentState">
      <summary>Gets or sets the apartment state to be used to run the test.</summary>
      <value>The default value of this property is <see cref="F:System.Threading.ApartmentState.Unknown" />.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.IsParallelizable">
      <summary>Gets or sets whether the test is parallelizable.</summary>
      <value>True if the test is parallelizable. The default value of this property is <c>false</c>.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.IsTestCase">
      <summary>Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.Kind">
      <summary>Gets or sets the value of the <see cref="F:Gallio.Model.MetadataKeys.TestKind" /> metadata entry. (This is a convenience method.)</summary>
      <value>One of the <see cref="T:Gallio.Model.TestKinds" /> constants.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.LocalId">
      <summary>
        <para> Gets a locally unique identifier for this test that satisfies the following conditions: </para>
        <list type="bullet">
          <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
          <item>The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects.</item>
          <item>The identifier is non-null.</item>
        </list>
        <para> The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> and an ordering condition among siblings to guarantee uniqueness. </para>
      </summary>
      <value>The locally unique identifier</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.LocalIdHint">
      <summary>Gets or sets a suggested <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId" /> hint, or null if none. The value returned by this method will be checked for uniqueness and amended as necessary to produce a truly unique <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId" nolink="true" />.</summary>
      <value>The local id hint</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.Order">
      <summary>
        <para> Gets or sets a number that defines an ordering for the test with respect to its siblings. </para>
        <para> Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. </para>
      </summary>
      <value>The test execution order with respect to siblings, initially zero.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.TestActions">
      <summary>Gets the set of actions that describe the behavior of the test.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.TestInstanceActions">
      <summary>Gets the set of actions that describe the behavior of the test's instances.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.Timeout">
      <summary>Gets or sets the maximum amount of time the whole test including its setup, teardown and body should be permitted to run. If the test runs any longer than this, it will be aborted by the framework. The timeout may be null to indicate the absence of a timeout.</summary>
      <value>The timeout. Default value is null.</value>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.AddDependency(Gallio.Model.ITest)">
      <summary>Adds a test dependency.</summary>
      <param name="testDependency">The test to add as a dependency</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.CreateChild(System.String,Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
      <summary>Creates a child test and returns its builder.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="dataContextBuilder">The data context builder for the new test</param>
      <returns>The builder for the child test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.CreateParameter(System.String,Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
      <summary>Creates a test parameter and returns its builder.</summary>
      <param name="name">The test parameter name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="dataContextBuilder">The data context builder for the new test parameter</param>
      <returns>The builder for the test parameter</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.GetTestComponent">
      <summary>Gets the underlying test component.</summary>
      <returns>The test component</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.SetExpectedExceptionType(System.String)">
      <summary>Sets the name of the expected exception type.</summary>
      <param name="typeName">The expected exception type name</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.ToTest">
      <summary>Gets the underlying test.</summary>
      <returns>The underlying test</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.DefaultTestDataContextBuilder">
      <summary>Default implementation of a test data context builder.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.ImplicitDataBindingIndexOffset">
      <summary>
        <para> Gets or sets the offset to add to a test parameter's implicit data binding index to map it into the containing data context. </para>
        <para> This property is used to determine the data binding index of a test parameter that has not been explicitly bound. The offsets are summed cumulatively to produce an implicit data binding index while traversing the chain of containing data contexts while locating the first anonymous data source. </para>
        <para> For example, suppose <c>Y</c> is the second parameter of a test method. If <c>Y</c> does not have an explicit data binding, we will apply implicit data binding rules as follows. <list type="bullet"><item>If <c>Y</c>'s data context contains an anonymous data source, then the implicit data binding index will be 0.</item><item>Otherwise, if <c>Y</c>'s containing data context contains an anonymous data source, then the implicit data binding index will equal the offset specified in <c>Y</c>'s data context: 1 (since it is the second parameter).</item><item>Otherwise, we continue searching containing data contexts and summing their offsets until we find an anonymous data source. If none is found, then data binding will fail.</item></list></para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.CreateChild">
      <summary>Creates a child data context.</summary>
      <returns>The builder for the child context</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.DefineDataSource(System.String)">
      <summary>Defines a new data source within this data context if one does not exist. Otherwise returns the existing one.</summary>
      <param name="name">The data source name</param>
      <returns>The defined data source</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.GetTestModelBuilder">
      <summary>Gets the test model builder.</summary>
      <returns>The test model builder</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.ToPatternTestDataContext">
      <summary>Gets the underlying pattern test data context.</summary>
      <returns>The underlying pattern test data context</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.DefaultTestModelBuilder">
      <summary>Default implementation of a test model builder.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestModelBuilder.ReflectionPolicy">
      <summary>Gets the reflection policy for the model.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.AddAnnotation(Gallio.Model.Annotation)">
      <summary>Adds an annotation to the test model.</summary>
      <param name="annotation">The annotation to add</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
      <summary>Adds an assembly resolver to the test model's assembly loading policy.</summary>
      <param name="resolver">The resolver to add</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.CreateTopLevelTest(System.String,Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
      <summary>Creates a top-level test as a child of the root test and returns its builder.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="dataContextBuilder">The data context builder for the new test</param>
      <returns>The builder for the top-level test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.GetTestModelBuilder">
      <summary>Gets the test model builder.</summary>
      <returns>The test model builder</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.PublishExceptionAsAnnotation(Gallio.Reflection.ICodeElementInfo,System.Exception)">
      <summary>Publishes an exception as an annotation about a particular code element.</summary>
      <param name="codeElement">The code element, or null if none</param>
      <param name="ex">The exception to publish</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.ToTestModel">
      <summary>Gets the underlying test model.</summary>
      <returns>The underlying test model</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.DefaultTestParameterBuilder">
      <summary>Default implementation of a test parameter builder.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestParameterBuilder.Binder">
      <summary>Gets or sets the data binder for the parameter.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.DefaultTestParameterBuilder.TestParameterActions">
      <summary>Gets the set of actions that describe the behavior of the test parameter.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestParameterBuilder.GetTestComponent">
      <summary>Gets the underlying test component.</summary>
      <returns>The test component</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.DefaultTestParameterBuilder.ToTestParameter">
      <summary>Gets the underlying test parameter.</summary>
      <returns>The underlying test parameter</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.MetadataPatternAttribute">
      <summary>
        <para> Applies declarative metadata to a test component. </para>
        <para> A metadata attribute is similar to a decorator but more restrictive. Metadata does not modify the structure of a test directly. Instead it introduces additional metadata key / value pairs for classification, filtering, reporting, documentation or other purposes. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.MetadataPatternAttribute.GetMetadata">
      <summary>Gets the metadata key / value pairs to be added to the test component.</summary>
      <returns>The metadata entries</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.MetadataPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.MetadataPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternAttribute">
      <summary>
        <para> The <see cref="T:Gallio.Framework.Pattern.PatternAttribute" /> class is the base class for all pattern test framework attributes. It associates a code element with a <see cref="T:Gallio.Framework.Pattern.IPattern" /> for building up parts of the test model using reflection. </para>
        <para> Subclasses of <see cref="T:Gallio.Framework.Pattern.IPattern" nolink="true" /> define simpler interfaces for implementing the semantics of common types of attributes such as test factories, decorators, and data providers. Refer to the documentation of each subclass for details on its use. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternAttribute.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternAttribute.ThrowUsageErrorException(System.String)">
      <summary>Throws a <see cref="T:Gallio.Framework.Pattern.PatternUsageErrorException" /> with the specified message including a short heading that identifies the attribute type.</summary>
      <param name="message">The message, not null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternAttribute.ThrowUsageErrorException(System.String,System.Exception)">
      <summary>Throws a <see cref="T:Gallio.Framework.Pattern.PatternUsageErrorException" /> with the specified message including a short heading that identifies the attribute type.</summary>
      <param name="message">The message, not null</param>
      <param name="ex">The associated exception, or null if none</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternAttributeTargets">
      <summary>Standard <see cref="T:System.AttributeTargets" /> flag combinations for <see cref="T:Gallio.Framework.Pattern.PatternAttribute" /> declarations. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.ContributionMethod">
      <summary>Valid attribute targets for contribution methods. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.DataContext">
      <summary>Valid attribute targets for data contexts. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.Test">
      <summary>Valid attribute targets for tests. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestAssembly">
      <summary>Valid attribute targets for test assemblies. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestComponent">
      <summary>Valid attribute targets for tests or test parameters. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestConstructor">
      <summary>Valid attribute targets for test constructors. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestContract">
      <summary>Valid attribute targets for test contracts. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestMethod">
      <summary>Valid attribute targets for test methods. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestParameter">
      <summary>Valid attribute targets for test parameters. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestType">
      <summary>Valid attribute targets for test types. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTest">
      <summary>A test case that has been defined by the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework" />.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.ApartmentState">
      <summary>Gets or sets the apartment state to be used to run the test.</summary>
      <value>The default value of this property is <see cref="F:System.Threading.ApartmentState.Unknown" />.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.DataContext">
      <summary>Gets the data context of the component.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.IsParallelizable">
      <summary>Gets or sets whether the test is parallelizable.</summary>
      <value>True if the test is parallelizable. The default value of this property is <c>false</c>.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.TestActions">
      <summary>Gets the set of actions that describe the behavior of the test.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.TestControllerFactory">
      <summary>Gets a <see cref="T:Gallio.Model.Execution.ITestController" /><see cref="T:Gallio.Func`1" /> to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller.</summary>
      <value>The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above)</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.TestInstanceActions">
      <summary>Gets the set of actions that describe the behavior of the test's instances.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTest.Timeout">
      <summary>Gets or sets the maximum amount of time the whole test including its setup, teardown and body should be permitted to run. If the test runs any longer than this, it will be aborted by the framework. The timeout may be null to indicate the absence of a timeout.</summary>
      <value>The timeout. Default value is null.</value>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value" /> represents a negative time span</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTest.SetName(System.String)">
      <summary>Sets the name of the component.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestActions">
      <summary>
        <para> An implementation of <see cref="T:Gallio.Framework.Pattern.IPatternTestHandler" /> based on actions that can be sequenced and composed as chains. </para>
        <para> This class is the backbone of the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework" /> extensibility model. Because new behaviors can be defined and added to action chains at will by any component that participates in the test construction process (typically an <see cref="T:Gallio.Framework.Pattern.IPattern" />), the framework itself does not need to hardcode the mechanism by which the behaviors are selected. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.AfterTestChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.AfterTest(Gallio.Framework.Pattern.PatternTestState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.BeforeTestChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.BeforeTest(Gallio.Framework.Pattern.PatternTestState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.DecorateTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.DecorateTestInstance(Gallio.Framework.Pattern.PatternTestState,Gallio.Framework.Pattern.PatternTestInstanceActions)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.DisposeTestChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.DisposeTest(Gallio.Framework.Pattern.PatternTestState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.InitializeTestChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.InitializeTest(Gallio.Framework.Pattern.PatternTestState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.TestInstanceActions">
      <summary>Gets the test instance actions that describes the lifecycle of a test instance.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestActions.TestInstanceHandler">
      <summary>Gets the test instance handler that describes the lifecycle of a test instance.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestActions.AfterTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Cleans up a completed test state after its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of its containing test step because the test has terminated. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestActions.BeforeTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Prepares a newly created test state before its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of its containing test step because the test has not yet been started. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Configuring the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> in anticipation of test execution.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item><item>Skipping the test by throwing an appropriate <see cref="T:Gallio.Framework.SilentTestException" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestActions.CreateDecorator(Gallio.Framework.Pattern.IPatternTestHandler)">
      <summary>
        <para> Creates a new <see cref="T:Gallio.Framework.Pattern.PatternTestActions" /> object initially configured to forward calls to the specified handler without change. The result is that any behaviors added to the action chains of the returned <see cref="T:Gallio.Framework.Pattern.PatternTestActions" nolink="true" /> will be invoked before, after or around those of the specified handler. </para>
        <para> A pattern test decorator applies additional actions around those of another <see cref="T:Gallio.Framework.Pattern.IPatternTestHandler" /> for a <see cref="T:Gallio.Framework.Pattern.PatternTest" />. </para>
      </summary>
      <param name="handler">The handler to decorate</param>
      <returns>The decorated handler actions</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="handler" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestActions.DecorateTestInstance(Gallio.Framework.Pattern.PatternTestState,Gallio.Framework.Pattern.PatternTestInstanceActions)">
      <summary>
        <para> Decorates the <see cref="T:Gallio.Framework.Pattern.IPatternTestHandler" /> of a test instance before its <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.BeforeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions have a chance to run. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of its containing test instance because the test has not yet been started. </para>
        <para> This method may apply any number of decorations to the test instance's handler by adding actions to the supplied <paramref name="decoratedTestInstanceActions" /> object. The test instance's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Adding additional actions for the test instance to the <paramref name="decoratedTestInstanceActions" />.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
      <param name="decoratedTestInstanceActions">The test instance's actions to decorate, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestActions.DisposeTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Cleans up a test following the execution of its instances. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" />. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Deconfiguring the test environment following the enumeration and execution of all test instances.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestActions.InitializeTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Initializes a test prior to the execution of its instances. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" />. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Aborting the test run if any preconditions have not been satisfied or if the test is to be skipped.</item><item>Configuring the test environment in advance of the enumeration and execution of all test instances.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestController">
      <summary>Controls the execution of <see cref="T:Gallio.Framework.Pattern.PatternTest" /> instances.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestController.RunTestsImpl(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Implementation of <see cref="M:Gallio.Model.Execution.BaseTestController.RunTests(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> called after argument validation has taken place.</summary>
      <param name="rootTestCommand">The root test command, not null</param>
      <param name="parentTestStep">The parent test step, or null if none</param>
      <param name="options">The test execution options, not null</param>
      <param name="progressMonitor">The progress monitor, not null</param>
      <returns>The combined outcome of the root test command</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestDataContext">
      <summary>
        <para> A pattern test data context introduces a scope for data source declarations. </para>
        <para> Each <see cref="T:Gallio.Framework.Pattern.PatternTest" /> or <see cref="T:Gallio.Framework.Pattern.PatternTestParameter" /> has a <see cref="T:Gallio.Framework.Pattern.PatternTestDataContext" />. However, data contexts may also be nested. </para>
        <para> For example, the constructor of a test class typically augments its containing test with additional test parameters that represent its own constructor parameters. If data binding attributes are applied to the constructor, they should operate within the scope of that constructor only. To achieve this effect, the constructor declares a new <see cref="T:Gallio.Framework.Pattern.PatternTestDataContext" nolink="true" /> within which its test parameters will be created. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestDataContext.ImplicitDataBindingIndexOffset">
      <summary>
        <para> Gets or sets the offset to add to a test parameter's implicit data binding index to map it into the containing data context. </para>
        <para> This property is used to determine the data binding index of a test parameter that has not been explicitly bound. The offsets are summed cumulatively to produce an implicit data binding index while traversing the chain of containing data contexts while locating the first anonymous data source. </para>
        <para> For example, suppose <c>Y</c> is the second parameter of a test method. If <c>Y</c> does not have an explicit data binding, we will apply implicit data binding rules as follows. <list type="bullet"><item>If <c>Y</c>'s data context contains an anonymous data source, then the implicit data binding index will be 0.</item><item>Otherwise, if <c>Y</c>'s containing data context contains an anonymous data source, then the implicit data binding index will equal the offset specified in <c>Y</c>'s data context: 1 (since it is the second parameter).</item><item>Otherwise, we continue searching containing data contexts and summing their offsets until we find an anonymous data source. If none is found, then data binding will fail.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestDataContext.Parent">
      <summary>Gets the containing data context, or null if none.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.CreateChild">
      <summary>Creates a child data context.</summary>
      <returns>A handle for the child context</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.DefineDataSource(System.String)">
      <summary>Defines a new data source within this data context if one does not exist. Otherwise returns the existing one.</summary>
      <param name="name">The data source name</param>
      <returns>The defined data source</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.ResolveDataSource(System.String)">
      <summary>Resolves the data source with the specified name.</summary>
      <param name="name">The data source name</param>
      <returns>The resolved data source, or null if none found</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.ResolveImplicitDataBindingIndex">
      <summary>Returns the index that should be used to implicitly bind to the nearest anonymous data source that can be found. The index is computed as the sum of the <see cref="P:Gallio.Framework.Pattern.PatternTestDataContext.ImplicitDataBindingIndexOffset" /> of each data context traversed to find the data source excluding the data context that actually has the data source.</summary>
      <returns>The implicit data binding index, or null if no anonymous data sources were found</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestExplorer">
      <summary>A test explorer for <see cref="T:Gallio.Framework.Pattern.PatternTestFramework" />.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestExplorer.ExploreAssembly(Gallio.Reflection.IAssemblyInfo,System.Action{Gallio.Model.ITest})">
      <summary>Explores the tests defined by an assembly and links them into the <see cref="P:Gallio.Model.ITestExplorer.TestModel" />.</summary>
      <param name="assembly">The assembly</param>
      <param name="consumer">An action to perform on each assembly-level test explored, or null if no action is required</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestExplorer.ExploreType(Gallio.Reflection.ITypeInfo,System.Action{Gallio.Model.ITest})">
      <summary>Explores the tests defined by a type and links them into the <see cref="P:Gallio.Model.ITestExplorer.TestModel" />.</summary>
      <param name="type">The type</param>
      <param name="consumer">An action to perform on each type-level test explored, or null if no action is required</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestExplorer.FinishModel">
      <summary>Performs any final actions after exploration has taken place to ensure that we have a complete and internally consistent model.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestExplorer.IsTest(Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="element">The element</param>
      <returns>True if the element represents a test</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestFramework">
      <summary>
        <para> The pattern test framework is a built-in framework that Gallio provides based on reflection over attributes that implement <see cref="T:Gallio.Framework.Pattern.IPattern" />. </para>
        <para> The pattern test framework does not provide many attributes that end-users would use to write tests. The framework is intended to be extended by <see cref="T:Gallio.Framework.Pattern.IPatternTestFrameworkExtension" /> components and libraries that define the test syntax and other facilities. </para>
        <para> For example, a Test-Driven framework would augment the base framework with a syntax based around test fixtures, test methods and assertions. A Behavior-Driven framework would instead use a syntax based around contexts and specifications. Both frameworks would share the common attribute-based model provided by the pattern test framework. They may even interoperate to a large extent. </para>
        <para> Other add-on libraries and tools may further contribute functionality to the pattern test framework by registering components with the runtime or by subclassing pattern attributes. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestFramework.Id">
      <summary>Gets the unique id of the test framework.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestFramework.Name">
      <summary>Gets the name of the test framework.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestFramework.CreateTestExplorer(Gallio.Model.TestModel)">
      <summary>Creates a test explorer for this test framework.</summary>
      <param name="testModel">The test model to populate incrementally as tests are discovered</param>
      <returns>The test explorer</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestInstanceActions">
      <summary>An implementation of <see cref="T:Gallio.Framework.Pattern.IPatternTestInstanceHandler" /> based on actions that can be sequenced and composed as chains.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.AfterTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.AfterTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.BeforeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DecorateChildTestChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.DecorateChildTest(Gallio.Framework.Pattern.PatternTestInstanceState,Gallio.Framework.Pattern.PatternTestActions)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DisposeTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.DisposeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.ExecuteTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.ExecuteTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.InitializeTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.InitializeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.RunTestInstanceBodyChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.RunTestInstanceBody(Gallio.Framework.Pattern.PatternTestInstanceState)" /> functions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.SetUpTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.SetUpTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.TearDownTestInstanceChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.TearDownTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.AfterTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Cleans up a completed test instance after its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> because the test step for this instance (if different from the primary step) has terminated. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Deconfiguring the test environment following the test disposal.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Prepares a newly created test instance state before its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> because the test step for this instance (if different from the primary step) has not yet started. </para>
        <para> If <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep" /> is false then this method has the opportunity to modify the name or add metadata to the brand new <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> that was created for just this test instance. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Adding or changing slot values.</item><item>Configuring the test environment in advance of test initialization.</item><item>Modifying the name or metadata of the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" nolink="true" />, if <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep" nolink="true" /> is false (since the primary test step has already started execution).</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" nolink="true" /> object in any way UNLESS <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep" nolink="true" /> is false.</item><item>Skipping the test instance by throwing an appropriate <see cref="T:Gallio.Framework.SilentTestException" />.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.CreateDecorator(Gallio.Framework.Pattern.IPatternTestInstanceHandler)">
      <summary>
        <para> Creates a new <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceActions" /> object initially configured to forward calls to the specified handler without change. The result is that any behaviors added to the action chains of the returned <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceActions" nolink="true" /> will be invoked before, after or around those of the specified handler. </para>
        <para> A pattern test decorator applies additional actions around those of another <see cref="T:Gallio.Framework.Pattern.IPatternTestInstanceHandler" /> for a <see cref="T:Gallio.Framework.Pattern.PatternTestStep" />. </para>
      </summary>
      <param name="handler">The handler to decorate</param>
      <returns>The decorated handler actions</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="handler" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.DecorateChildTest(Gallio.Framework.Pattern.PatternTestInstanceState,Gallio.Framework.Pattern.PatternTestActions)">
      <summary>
        <para> Decorates the <see cref="T:Gallio.Framework.Pattern.IPatternTestInstanceHandler" /> of a child test before its <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.BeforeTest(Gallio.Framework.Pattern.PatternTestState)" /> actions have a chance to run. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Execute" /> lifecycle phase. </para>
        <para> This method may apply any number of decorations to the child test's handler by adding actions to the supplied <paramref name="decoratedChildTestActions" /> object. The child test's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. </para>
        <para> A typical use of this method is to augment the <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.SetUpTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> and <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.TearDownTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> behaviors of the child test with additional contributions provided by the parent. </para>
        <para> It is also possible to decorate descendants besides direct children. To do so, decorate the child's <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.DecorateChildTest(Gallio.Framework.Pattern.PatternTestInstanceState,Gallio.Framework.Pattern.PatternTestActions)" /> behavior to perpetuate the decoration down to more deeply nested descendants. This process of recursive decoration may be carried along to whatever depth is required. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Adding additional actions for the child test to the <paramref name="decoratedChildTestActions" />.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <param name="decoratedChildTestActions">The child test's actions to decorate, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.DisposeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Disposes a test instance that is about to terminate. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Dispose" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Deconfiguring the test fixture following test execution.</item><item>Disposing the test fixture instance.</item><item>Disposing other resources.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.ExecuteTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Executes the test instance. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Execute" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Invoking test methods.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.InitializeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Initializes a test instance that has just started running. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Initialize" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Creating the test fixture instance and setting <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType" /> and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance" />.</item><item>Configuring the test fixture in advance of test execution.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.RunTestInstanceBody(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>Runs the body of the test from the Initialize phase through the Dispose phase.</summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <returns>The test outcome</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.SetUpTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Sets up a test instance prior to execution. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.SetUp" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Invoking test setup methods.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.TearDownTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Tears down a test instance following execution. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.TearDown" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Invoking test teardown methods.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestInstanceState">
      <summary>
        <para> Represents the run-time state of a single instance of a <see cref="T:Gallio.Framework.Pattern.PatternTest" /> that is to be executed. </para>
        <para> Typical lifecycle of <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState" />: <list type="bullet"><item>The <see cref="T:Gallio.Framework.Pattern.PatternTestController" /> creates a <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState" nolink="true" /> for the instance of the <see cref="T:Gallio.Framework.Pattern.PatternTest" nolink="true" /> to be executed using particular data bindings.</item><item>The controller populates the instance state with slot values for each slot with an associated <see cref="T:Gallio.Framework.Data.IDataAccessor" /> in the <see cref="T:Gallio.Framework.Pattern.PatternTestState" />.</item><item>The controller calls <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.BeforeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> to give test extensions the opportunity to modify the instance state.</item><item>The controller initializes, sets up, executes, tears down and disposes the test instance.</item><item>The controller calls <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.AfterTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> to give test extensions the opportunity to clean up the instance state.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.BindingItem">
      <summary>Gets the data item obtained from the test's <see cref="T:Gallio.Framework.Data.DataBindingContext" /> to create this state.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Converter">
      <summary>Gets the converter for data binding.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data">
      <summary>Gets the user data collection associated with the test instance state. It may be used to associate arbitrary key/value pairs with the execution of the test instance.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance">
      <summary>Gets or sets the test fixture instance or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType">
      <summary>Gets or sets the test fixture type or null if none.</summary>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="value" /> contains unbound generic parameters, is a generic parameter, has an element type</exception>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Formatter">
      <summary>Gets the formatter for data binding.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep">
      <summary>Returns true if the <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestStep" /> is the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> that was created for the test. False if a new <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> was created as a child of the primary test step just for this test instance.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues">
      <summary>
        <para> Gets a mutable dictionary of slots and their bound values. </para>
        <para> The dictionary maps slots to the values that will be stored in them during test execution. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Test">
      <summary>Gets the test associated with this test instance state.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestArguments">
      <summary>Gets or sets the test method arguments or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestInstanceHandler">
      <summary>Gets the handler for the test instance.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestMethod">
      <summary>Gets or sets the test method or null if none.</summary>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="value" /> is contains unbound generic parameters</exception>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestParameterValues">
      <summary>Gets a mutable dictionary of values assigned to test parameters.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestState">
      <summary>Gets the test state associated with this test instance state.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestStep">
      <summary>Gets the test step used to execute the test instance.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.FromContext(Gallio.Framework.TestContext)">
      <summary>Gets the pattern test instance state from the specified context.</summary>
      <param name="context">The context</param>
      <returns>The pattern test instance state, or null if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.GetFixtureObjectCreationSpec(Gallio.Reflection.ITypeInfo)">
      <summary>Gets a fixture object creation specification using the state's bound <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues" />.</summary>
      <param name="type">The fixture type or generic type definition</param>
      <returns>The fixture instance</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if the slots or values in <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues" /> are not appropriate for instantiating <paramref name="type" /></exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.GetTestMethodInvocationSpec(Gallio.Reflection.IMethodInfo)">
      <summary>Gets a test method invocation specification using the state's bound <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues" />.</summary>
      <param name="method">The test method or generic method definition, possibly declared by a generic type or generic type defintion</param>
      <returns>The method return value</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if the slots or values in <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues" /> or <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType" /> are not appropriate for invoking <paramref name="method" /></exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.InvokeFixtureMethod(Gallio.Reflection.IMethodInfo,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{Gallio.Reflection.ISlotInfo,System.Object}})">
      <summary>Invokes a fixture method using the specified <paramref name="slotValues" />.</summary>
      <param name="method">The fixture method or generic method definition, possibly declared by a generic type or generic type defintion</param>
      <param name="slotValues">The slot values to use for invoking the method</param>
      <returns>The method return value</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method" /> or <paramref name="slotValues" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if the slots or values in <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues" /> or <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType" /> or <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance" /> are not appropriate for invoking <paramref name="method" /></exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType" /> is null</exception>
      <exception cref="T:System.Exception">Any exception thrown by the invoked method</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.InvokeTestMethod">
      <summary>Invokes the test method specified by <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestMethod" />, <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance" /> and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestArguments" />. If there is no test method or no arguments, does nothing.</summary>
      <returns>The method return value, or null if there was none</returns>
      <exception cref="T:System.Exception">Any exception thrown by the invoked method</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.RunBody">
      <summary>Runs the body of the test.</summary>
      <returns>The test outcome</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestParameter">
      <summary>Represents an parameter of a <see cref="T:Gallio.Framework.Pattern.PatternTest" /> derived from a field, property or method parameter.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestParameter.Binder">
      <summary>Gets or sets the <see cref="T:Gallio.Framework.Data.IDataBinder" /> for this test parameter.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestParameter.DataContext">
      <summary>Gets the data context of the component.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestParameter.Owner">
      <summary>Gets the test that owns this parameter.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestParameter.TestParameterActions">
      <summary>Gets the set of actions that describe the behavior of the test parameter.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestParameter.SetName(System.String)">
      <summary>Sets the name of the component.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestParameterActions">
      <summary>An implementation of <see cref="T:Gallio.Framework.Pattern.IPatternTestParameterHandler" /> based on actions that can be sequenced and composed as chains.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestParameterActions.BindTestParameterChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)" /> actions.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestParameterActions.UnbindTestParameterChain">
      <summary>Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)" /> actions.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestParameterActions.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
      <summary>
        <para> Binds a value to a test parameter. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Associated a value with a slot on the test fixture or test method.</item><item>Storing the object for later use during the test run.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <param name="value">The value to bind to the parameter</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestParameterActions.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
      <summary>
        <para> Unbinds a test parameter. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Releasing any resources used by the test parameter.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <param name="value">The value that was bound to the test parameter</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestState">
      <summary>
        <para> Represents the run-time state of a <see cref="T:Gallio.Framework.Pattern.PatternTest" /> that is to be executed. </para>
        <para> Typical lifecycle of <see cref="T:Gallio.Framework.Pattern.PatternTestState" />: <list type="bullet"><item>The <see cref="T:Gallio.Framework.Pattern.PatternTestController" /> creates a <see cref="T:Gallio.Framework.Pattern.PatternTestState" nolink="true" /> for the <see cref="T:Gallio.Framework.Pattern.PatternTest" nolink="true" /> to be executed.</item><item>The controller populates the test state with slot binding accessors for each <see cref="T:Gallio.Framework.Pattern.PatternTestParameter" /> associated with the test.</item><item>The controller calls <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.BeforeTest(Gallio.Framework.Pattern.PatternTestState)" /> to give test extensions the opportunity to modify the test state.</item><item>The controller begins iterating over the <see cref="T:Gallio.Framework.Data.IDataItem" />s produced by the state's <see cref="P:Gallio.Framework.Pattern.PatternTestState.BindingContext" />. For each item it constructs a <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState" /> and executes the test instance.</item><item>The controller calls <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.AfterTest(Gallio.Framework.Pattern.PatternTestState)" /> to give test extensions the opportunity to clean up the test state.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.BindingContext">
      <summary>Gets the data binding context of the test. The context is used to produce data items for test instances.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.Converter">
      <summary>Gets the converter for data binding.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.Data">
      <summary>Gets the user data collection associated with the test state. It may be used to associate arbitrary key/value pairs with the execution of the test.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.Formatter">
      <summary>Gets the formatter for data binding.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.IsExplicit">
      <summary>Returns true if the test was selected explicitly.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep">
      <summary>
        <para> Gets the primary test step associated with this test state. </para>
        <para> If the test has data bindings, the test instance for each data item will be executed as children of the primary test step. Otherwise, the primary test step will be used for the entire test run. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.Test">
      <summary>Gets the test associated with this test state.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.TestHandler">
      <summary>Gets the handler for the test.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestState.TestParameterDataAccessors">
      <summary>Gets a mutable dictionary of data accessors that will provide values assigned to test parameters given a data binding item.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.PatternTestState.FromContext(Gallio.Framework.TestContext)">
      <summary>Gets the pattern test state from the specified context.</summary>
      <param name="context">The context</param>
      <returns>The pattern test state, or null if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestStep">
      <summary>A step that belongs to a <see cref="T:Gallio.Framework.Pattern.PatternTest" />.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.PatternTestStep.Test">
      <summary>Gets the associated test.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternUsageErrorException">
      <summary>
        <para> The type of exception thrown when a test declaration is malformed or contains an error. Implementations of <see cref="T:Gallio.Framework.Pattern.IPattern" /> may use this exception to report that a pattern is malformed or not valid in the context in which it appears. </para>
        <para> The exception effectively halts the processing of the pattern. The message text is then manifested as an error annotation that may be displayed to the user. </para>
        <para> When you see this error, check to make sure that the syntax of the test is correct, all required parameters have been provided and they contain valid values. </para>
      </summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.ProcessIsolation">
      <summary>
        <para> The process isolation object saves global process-level context information when it is created and restores it when it is disposed. </para>
        <para> The following context information is saved and restored: <list type="bullet"><item>The current working directory</item></list></para>This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.ProcessIsolation.Dispose">
      <summary>Restores the saved process state.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute">
      <summary>A test assembly decorator pattern attribute applies decorations to an existing test declared at the assembly-level. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute.DecorateAssemblyTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>
        <para> Applies decorations to an assembly-level test. </para>
        <para> A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. </para>
      </summary>
      <param name="assemblyScope">The assembly scope</param>
      <param name="assembly">The assembly</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="assembly">The assembly</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestAssemblyExecutionParameters">
      <summary>Configures runtime parameters while executing tests within a test assembly. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestAssemblyExecutionParameters.DefaultTestCaseTimeout">
      <summary>Specifies the default test case timeout or null if none.</summary>
      <value>The default timeout for test cases or null if none. Defaults to 10 minutes.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestAssemblyExecutionParameters.DegreeOfParallelism">
      <summary>Specifies the maximum number of concurrent threads to use when tests are run in parallel.</summary>
      <value>The degree of parallelism. Defaults to <see cref="P:System.Environment.ProcessorCount" /> or 2, whichever is greater.</value>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value" /> is less than 1</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyExecutionParameters.Reset">
      <summary>Resets the globals to default values.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestAssemblyInitializationAttribute">
      <summary>
        <para> An assembly initialization attribute gets a chance to perform early initialization of the system before enumerating the tests within the assembly. </para>
        <para> For examples, a subclass of this attribute may be used to register an assembly resolver before test enumeration occurs to ensure that all referenced assemblies can be loaded. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyInitializationAttribute.Initialize(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>Performs early initialization for the specified assembly.</summary>
      <param name="frameworkScope">The framework-level scope that will eventually contain the assembly-level test</param>
      <param name="assembly">The assembly to process</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestAssemblyPatternAttribute">
      <summary>
        <para> Declares that an assembly generates an assembly-level test. Subclasses of this attribute can customize how test enumeration takes place within the assembly. </para>
        <para> At most one attribute of this type may appear on any given assembly. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.DefaultInstance">
      <summary>Gets a default instance of the assembly pattern attribute to use when no other pattern consumes an assembly. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.DefaultTypePattern">
      <summary>Gets the default pattern to apply to types that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.InitializeAssemblyTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>Initializes a test for an assembly after it has been added to the test model.</summary>
      <param name="assemblyScope">The assembly scope</param>
      <param name="assembly">The assembly</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.PopulateChildrenImmediately(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>Populates the children of the assembly test all at once.</summary>
      <param name="assemblyScope">The assembly scope</param>
      <param name="assembly">The assembly</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.PrepareToPopulateChildrenOnDemand(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>Prepares to populate the children of the assembly test on demand by adding a deferred populator with <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />.</summary>
      <param name="assemblyScope">The assembly scope</param>
      <param name="assembly">The assembly</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.SetTestSemantics(Gallio.Framework.Pattern.ITestBuilder,Gallio.Reflection.IAssemblyInfo)">
      <summary>
        <para> Applies semantic actions to the assembly-level test to estalish its runtime behavior. </para>
        <para> This method is called after <see cref="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.InitializeAssemblyTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)" />. </para>
      </summary>
      <param name="testBuilder">The test builder</param>
      <param name="assembly">The assembly</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IAssemblyInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="assembly">The assembly</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestConstructorPatternAttribute">
      <summary>
        <para> Declares that a constructor is used to provide test fixture parameters. Subclasses of this attribute can control what happens with the constructor. </para>
        <para> At most one attribute of this type may appear on any given constructor. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.TestConstructorPatternAttribute.DefaultInstance">
      <summary>Gets a default instance of the constructor pattern attribute to use when no other pattern consumes a contructor. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestConstructorPatternAttribute.DefaultConstructorParameterPattern">
      <summary>Gets the default pattern to apply to constructor parameters that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestConstructorPatternAttribute.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.InitializeDataContext(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IConstructorInfo)">
      <summary>Initializes the <see cref="T:Gallio.Framework.Pattern.PatternTestDataContext" />.</summary>
      <param name="dataContextScope">The data context scope</param>
      <param name="constructor">The constructor</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IConstructorInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="constructor">The constructor</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestDecoratorPatternAttribute">
      <summary>A test decorator pattern attribute applies decorations to a test defined by an assembly, type, or method. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestDecoratorPatternAttribute.DecorateTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Applies decorations to a test. </para>
        <para> A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestDependencyPatternAttribute">
      <summary>A dependency pattern attribute creates a dependency on the tests defined by some other code element. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestDependencyPatternAttribute.GetDependency(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the code element that declares the tests on which this test should depend.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element</param>
      <returns>The code element representing the dependency</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestDependencyPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestDependencyPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute">
      <summary>A test decorator pattern attribute applies decorations to an existing test declared at the method-level. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute.DecorateMethodTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)">
      <summary>
        <para> Applies decorations to a method-level test. </para>
        <para> A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. </para>
      </summary>
      <param name="methodScope">The method scope</param>
      <param name="method">The method</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="method">The method</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestMethodPatternAttribute">
      <summary>Declares that a method represents a test. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.DefaultGenericParameterPattern">
      <summary>Gets the default pattern to apply to generic parameters that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.DefaultMethodParameterPattern">
      <summary>Gets the default pattern to apply to method parameters that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.Order">
      <summary>
        <para> Gets or sets a number that defines an ordering for the test with respect to its siblings. </para>
        <para> Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. </para>
      </summary>
      <value>The test execution order with respect to siblings, initially zero.</value>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.Execute(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>Executes the test method.</summary>
      <param name="state">The test instance state, not null</param>
      <returns>The test method result</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)">
      <summary>Initializes a test for a method after it has been added to the test model.</summary>
      <param name="methodScope">The method scope</param>
      <param name="method">The method</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.SetTestSemantics(Gallio.Framework.Pattern.ITestBuilder,Gallio.Reflection.IMethodInfo)">
      <summary>
        <para> Applies semantic actions to a test to estalish its runtime behavior. </para>
        <para> This method is called after <see cref="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)" />. </para>
      </summary>
      <param name="testBuilder">The test builder</param>
      <param name="method">The test method</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.IMethodInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="method">The method</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute">
      <summary>A test parameter decorator pattern attribute applies decorations to an existing <see cref="T:Gallio.Framework.Pattern.PatternTestParameter" />. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute.DecorateTestParameter(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ISlotInfo)">
      <summary>
        <para> Applies decorations to a <see cref="T:Gallio.Framework.Pattern.PatternTestParameter" />. </para>
        <para> A typical use of this method is to augment the test parameter with additional metadata or to add additional behaviors to the test parameter. </para>
      </summary>
      <param name="slotScope">The slot scope</param>
      <param name="slot">The slot</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ISlotInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="slot">The slot</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestParameterPatternAttribute">
      <summary>
        <para> Declares that a field, property, method parameter or generic parameter represents a <see cref="T:Gallio.Framework.Pattern.PatternTestParameter" />. Subclasses of this attribute can control what happens with the parameter. </para>
        <para> At most one attribute of this type may appear on any given property, field or parameter declaration. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.AutomaticInstance">
      <summary>Gets an instance of the parameter pattern attribute to use when no other pattern consumes the parameter but when the parameter appears to have other contributing pattern attributes associated with it. So a test parameter is created automatically if we try to apply contributions to it, such as data items, but otherwise it is silent. This is particularly useful with fields and properties. This field is read-only.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.DefaultInstance">
      <summary>Gets a default instance of the parameter pattern attribute to use when no other pattern consumes the parameter. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestParameterPatternAttribute.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.InitializeTestParameter(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ISlotInfo)">
      <summary>Initializes a test parameter after it has been added to the containing test.</summary>
      <param name="testParameterScope">The test parameter scope</param>
      <param name="slot">The slot</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ISlotInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="slot">The slot</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute">
      <summary>A test type decorator pattern attribute applies decorations to an existing test declared at the type-level. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute.DecorateTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>
        <para> Applies decorations to a type-level test. </para>
        <para> A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. </para>
      </summary>
      <param name="typeScope">The type scope</param>
      <param name="type">The type</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="scope">The scope</param>
      <param name="type">The type</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestTypePatternAttribute">
      <summary>Declares that a type represents an test.</summary>
    </member>
    <member name="F:Gallio.Framework.Pattern.TestTypePatternAttribute.AutomaticInstance">
      <summary>Gets an instance of the test type pattern attribute to use when no other pattern consumes the type. If the type can be inferred to be a test type then the pattern will behave as if the type has a test type pattern attribute applied to it. Otherwise it will simply recurse into nested types. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultConstructorPattern">
      <summary>Gets the default pattern to apply to constructors that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultEventPattern">
      <summary>Gets the default pattern to apply to events that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultFieldPattern">
      <summary>Gets the default pattern to apply to fields that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultGenericParameterPattern">
      <summary>Gets the default pattern to apply to generic parameters that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultMethodPattern">
      <summary>Gets the default pattern to apply to methods that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultNestedTypePattern">
      <summary>Gets the default pattern to apply to nested types that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultPropertyPattern">
      <summary>Gets the default pattern to apply to properties that do not have a primary pattern, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.Order">
      <summary>
        <para> Gets or sets a number that defines an ordering for the test with respect to its siblings. </para>
        <para> Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. </para>
      </summary>
      <value>The test execution order with respect to siblings, initially zero.</value>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.ConsumeConstructors(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>Consumes type constructors.</summary>
      <param name="typeScope">The scope to be used as the containing scope</param>
      <param name="type">The type whose constructors are to be consumed</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.ConsumeMembers(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>Consumes type members including fields, properties, methods and events.</summary>
      <param name="typeScope">The scope to be used as the containing scope</param>
      <param name="type">The type whose members are to be consumed</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.ConsumeNestedTypes(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>Consumes nested types.</summary>
      <param name="typeScope">The scope to be used as the containing scope</param>
      <param name="type">The type whose nested types are to be consumed</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.GetMemberBindingFlags(Gallio.Reflection.ITypeInfo)">
      <summary>Gets the binding flags that should be used to enumerate non-nested type members of the type for determining their contribution to the test fixture. Instance members are only included if the type is not abstract.</summary>
      <param name="type">The type</param>
      <returns>The binding flags for enumerating members</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InferTestType(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ITypeInfo)">
      <summary>Infers whether the type is a test type based on its structure. Returns true if the type any associated patterns, if it has non-nested type members (subject to <see cref="M:Gallio.Framework.Pattern.TestTypePatternAttribute.GetMemberBindingFlags(Gallio.Reflection.ITypeInfo)" />) with patterns, if it has generic parameters with patterns, or if any of its nested types satisfy the preceding rules.</summary>
      <param name="evaluator">The pattern evaluator</param>
      <param name="type">The type</param>
      <returns>True if the type is likely a test type</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>
        <para> Initializes a test for a type after it has been added to the test model. </para>
        <para> The members of base types are processed before those of subtypes. </para>
      </summary>
      <param name="typeScope">The type scope</param>
      <param name="type">The type</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.SetTestSemantics(Gallio.Framework.Pattern.ITestBuilder,Gallio.Reflection.ITypeInfo)">
      <summary>
        <para> Applies semantic actions to a test to estalish its runtime behavior. </para>
        <para> This method is called after <see cref="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)" />. </para>
      </summary>
      <param name="testBuilder">The test builder</param>
      <param name="type">The test type</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ITypeInfo)">
      <summary>Verifies that the attribute is being used correctly.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="type">The type</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.ToolInfo">
      <summary>Provides information about a tool that extends the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework" />. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ToolInfo.Id">
      <summary>Gets the unique id of the tool.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ToolInfo.Name">
      <summary>Gets the display name of the tool.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPattern">
      <summary>
        <para> A <see cref="T:Gallio.Framework.Pattern.IPattern" /> defines a composable rule for building up a test model using reflection. </para>
        <para> The general idea is that a pattern applies contributions to a <see cref="T:Gallio.Framework.Pattern.IPatternScope" /> that represents the state of the pattern interpretation process. A primary pattern adds contributions to its containing scope with the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method. All patterns (primary and non-primary) add further contributions to the pattern's own scope with the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method. </para>
        <para> A pattern can also defer some of its processing by registering a decorator on the scope. Once all of the decorators have been gathered, they can be applied in sorted order as required. </para>
        <para> Pattern processing is performed recursively. First a top-level <see cref="T:Gallio.Framework.Pattern.BootstrapTestAssemblyPattern" /> identifies the primary pattern for an assembly. This pattern then takes over and performs reflection over the types within the assembly and hands off control to any primary patterns it finds there. And so on. Each primary pattern also provides an opportunity for non-primary patterns associated with the same code element to run. </para>
        <para> Typically a pattern is associated with a code element by means of a <see cref="T:Gallio.Framework.Pattern.PatternAttribute" /> but other associations are possible. Some patterns might define default rules for recursively processing code elements that do not have primary patterns of their own. Others might use means other than standard reflection to discover the patterns to be applied. The process is intended to be open and extensible. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPattern.IsPrimary">
      <summary>
        <para> Returns true if this is a primary pattern. </para>
        <para> A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method will be called. </para>
        <para> Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. </para>
        <para> If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. </para>
        <para> Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method to decorate tests and test parameters declared by the primary pattern. </para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>
        <para> Consumes a code element and applies its contributions to the scope provided by a containing pattern. </para>
        <para> This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. </para>
        <para> For example, when enumerating test fixtures, the assembly-level pattern will call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of the primary patterns associated with each type in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. </para>
      </summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to process</param>
      <param name="skipChildren">If true, skips generating child test components. Instead the children may be populated on demand using <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)" />. The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand are idempotent (do nothing or have no adverse side-effects).</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied.</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPattern.IsTest(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="evaluator">The evaluator</param>
      <param name="codeElement">The code element</param>
      <returns>True if the code element represents a test</returns>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied.</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>
        <para> Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> method of a primary pattern applied to this code element. </para>
        <para> This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. </para>
        <para> For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)" /> method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. </para>
      </summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied.</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternEvaluator">
      <summary>A pattern evaluator maintains state that is needed to interpret patterns. It is used by the <see cref="T:Gallio.Framework.Pattern.PatternTestExplorer" /> to populate a <see cref="T:Gallio.Model.TestModel" /> during test enumeration.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternEvaluator.TestModelBuilder">
      <summary>Gets the builder for the test model under construction.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
      <summary>Consumes the specified code element.</summary>
      <param name="containingScope">The containing scope</param>
      <param name="codeElement">The code element to consume</param>
      <param name="skipChildren">If true, instructs the primary pattern to defer populating child tests</param>
      <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved for the code element. May be null if none.</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="containingScope" /> or <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.CreateTopLevelTestScope(System.String,Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a top-level test as a child of the root test. Returns the scope of the newly created top-level test.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The builder for the top-level test</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetDeclaredTests(Gallio.Reflection.ICodeElementInfo)">
      <summary>Finds tests that are declared by the specified <see cref="T:Gallio.Reflection.ICodeElementInfo" />.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of tests</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetPatterns(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets all patterns associated with a code element.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of patterns, or null if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetPrimaryPattern(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the primary pattern associated with a code element, or null if none.</summary>
      <param name="codeElement">The code element</param>
      <returns>The primary pattern, or null if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if there are multiple primary patterns associated with the code element</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetScopes(Gallio.Reflection.ICodeElementInfo)">
      <summary>Finds scopes that are associated with the specified <see cref="T:Gallio.Reflection.ICodeElementInfo" /> and returns an enumeration of their <see cref="T:Gallio.Framework.Pattern.IPatternScope" /> objects.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of scopes</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.HasPatterns(Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if a code element has one or more associated patterns.</summary>
      <param name="codeElement">The code element</param>
      <returns>True if the code element has an associated pattern</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.IsTest(Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.IPattern)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="codeElement">The code element</param>
      <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved for the code element. May be null if none.</param>
      <returns>True if the code element represents a test</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo)">
      <summary>Processes the specified code element.</summary>
      <param name="scope">The scope</param>
      <param name="codeElement">The code element to process</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.RegisterScope(Gallio.Framework.Pattern.IPatternScope)">
      <summary>Registers the scope so that it can be resolved later by <see cref="M:Gallio.Framework.Pattern.IPatternEvaluator.GetScopes(Gallio.Reflection.ICodeElementInfo)" />.</summary>
      <param name="scope">The scope</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="scope" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternResolver">
      <summary>The pattern resolver provides a means for obtaining the <see cref="T:Gallio.Framework.Pattern.IPattern" /> objects associated with an <see cref="T:Gallio.Reflection.ICodeElementInfo" />.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternResolver.GetPatterns(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the patterns associated with the specified code element.</summary>
      <param name="codeElement">The code element</param>
      <returns>The enumeration of patterns</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternScope">
      <summary>A pattern scope describes the environment in which the pattern is being evaluated.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.CanAddChildTest">
      <summary>Returns true if a child test can be added to the test within scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.CanAddTestParameter">
      <summary>Returns true if a test parameter can be added to the test within scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.CodeElement">
      <summary>Gets the code element associated with the scope, or null if none.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.Evaluator">
      <summary>Gets the pattern evaluator.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.IsTestDeclaration">
      <summary>
        <para> Returns true if the scope represents a test declaration. </para>
        <para> An arbitrary scope nested within a test declaration scope is not itself considered a test declaration scope unless it also represents a test declaration. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.IsTestParameterDeclaration">
      <summary>
        <para> Returns true if the scope represents a test parameter declaration. </para>
        <para> An arbitrary scope nested within a test parameter declaration scope is not itself considered a test parameter declaration scope unless it also represents a test parameter declaration. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.TestBuilder">
      <summary>Gets a builder for applying contributions to the test currently being constructed within this scope. Never null.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.TestComponentBuilder">
      <summary>Gets a builder for applying contributions to the test component currently being constructed within this scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.TestDataContextBuilder">
      <summary>Gets a builder for applying contributions to the current test data context within the scope.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.TestModelBuilder">
      <summary>Gets a builder for applying contributions to the test model.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternScope.TestParameterBuilder">
      <summary>Gets a builder for applying contributions to the test parameter currently being constructed within this scope, if there is one, or null if there is no test parameter in scope.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)">
      <summary>Adds an action to the scope that enables a pattern to lazily populate the test model with components generated in nested scopes. This is used when <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Reflection.ICodeElementInfo,System.Boolean)" /> is called with the option to skip children.</summary>
      <param name="populator">A <see cref="T:Gallio.Framework.Pattern.DeferredComponentPopulator" /> supplied by the pattern to populate its components lazily</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="populator" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.Consume(Gallio.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
      <summary>Consumes the specified code element using this scope as the containing scope.</summary>
      <param name="codeElement">The code element to consume</param>
      <param name="skipChildren">If true, instructs the primary pattern to defer populating child tests</param>
      <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved for the code element. May be null if none.</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateChildTestDataContextScope(Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a child test data context derived from the builders of this scope. Returns the scope of the newly created child test data context.</summary>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The scope of the newly created child test data context</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateChildTestScope(System.String,Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a child test with its own child data context derived from the builders of this scope. Returns the scope of the newly created child test.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The scope of the newly created child test</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if <see cref="P:Gallio.Framework.Pattern.IPatternScope.CanAddChildTest" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateScope(Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestBuilder,Gallio.Framework.Pattern.ITestParameterBuilder,Gallio.Framework.Pattern.ITestDataContextBuilder,System.Boolean)">
      <summary>Creates and registers a scope for a test component.</summary>
      <param name="codeElement">The code element to associate with the scope</param>
      <param name="testBuilder">The test builder</param>
      <param name="testParameterBuilder">The test parameter builder, or null if the scope is to be associated to the test only</param>
      <param name="testDataContextBuilder">The test data context builder</param>
      <param name="isDeclaration">If true, the scope represents the point of declaration of the test component with which it is associated</param>
      <returns>The new scope</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" />, <paramref name="testBuilder" />, <paramref name="testParameterBuilder" /> or <paramref name="testDataContextBuilder" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateTestParameterScope(System.String,Gallio.Reflection.ICodeElementInfo)">
      <summary>Creates a test parameter for the test in scope with its own child data context derived from the builders of this scope. Returns the scope of the newly created test parameter.</summary>
      <param name="name">The test parameter name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <returns>The scope of the newly created test parameter</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
      <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if <see cref="P:Gallio.Framework.Pattern.IPatternScope.CanAddTestParameter" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.PopulateDeferredComponents(Gallio.Reflection.ICodeElementInfo)">
      <summary>Asks all registered deferred component populators to build components whose construction had previously been deferred.</summary>
      <param name="codeElementHint">The code element hint to identify the location of the particular components to populate, or null to populate them all</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternScope.Process(Gallio.Reflection.ICodeElementInfo)">
      <summary>Processes the specified code element using this scope as the current scope.</summary>
      <param name="codeElement">The code element to process</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> is null</exception>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternTestComponent">
      <summary>An interface shared by <see cref="T:Gallio.Framework.Pattern.PatternTest" /> and <see cref="T:Gallio.Framework.Pattern.PatternTestParameter" />.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternTestComponent.DataContext">
      <summary>Gets the data context of the component.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestComponent.SetName(System.String)">
      <summary>Sets the name of the component.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternTestFrameworkExtension">
      <summary>A pattern test framework extension provides the opportunity to extend the standard pattern test framework with additional behaviors.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestFrameworkExtension.GetReferencedTools(Gallio.Reflection.IAssemblyInfo)">
      <summary>
        <para> Gets information about the tools that are used by the specified test assembly. The tool information will be included in the report as part of the framework node that contains the assembly. </para>
        <para> This method is used by authors of tools that are derived from the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework" /> to provide brand and version information about the tool so that it will be visible to end users. </para>
        <para> If no tools are referenced by the assembly, it will be ignored by the <see cref="T:Gallio.Framework.Pattern.PatternTestExplorer" />. </para>
      </summary>
      <param name="assembly">The test assembly</param>
      <returns>The tool information</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternTestHandler">
      <summary>A pattern test handler provides the logic that implements the various phases of the test execution lifecycle.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.IPatternTestHandler.TestInstanceHandler">
      <summary>Gets the test instance handler that describes the lifecycle of a test instance.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestHandler.AfterTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Cleans up a completed test state after its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of its containing test step because the test has terminated. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestHandler.BeforeTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Prepares a newly created test state before its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of its containing test step because the test has not yet been started. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Configuring the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> in anticipation of test execution.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item><item>Skipping the test by throwing an appropriate <see cref="T:Gallio.Framework.SilentTestException" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestHandler.DecorateTestInstance(Gallio.Framework.Pattern.PatternTestState,Gallio.Framework.Pattern.PatternTestInstanceActions)">
      <summary>
        <para> Decorates the <see cref="T:Gallio.Framework.Pattern.IPatternTestHandler" /> of a test instance before its <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.BeforeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> actions have a chance to run. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of its containing test instance because the test has not yet been started. </para>
        <para> This method may apply any number of decorations to the test instance's handler by adding actions to the supplied <paramref name="decoratedTestInstanceActions" /> object. The test instance's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Adding additional actions for the test instance to the <paramref name="decoratedTestInstanceActions" />.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
      <param name="decoratedTestInstanceActions">The test instance's actions to decorate, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestHandler.DisposeTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Cleans up a test following the execution of its instances. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" />. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Deconfiguring the test environment following the enumeration and execution of all test instances.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestHandler.InitializeTest(Gallio.Framework.Pattern.PatternTestState)">
      <summary>
        <para> Initializes a test prior to the execution of its instances. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" />. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Aborting the test run if any preconditions have not been satisfied or if the test is to be skipped.</item><item>Configuring the test environment in advance of the enumeration and execution of all test instances.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testState">The test state, never null</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternTestInstanceHandler">
      <summary>A pattern test instance handler provides the logic that implements the various phases of the test instance execution lifecycle.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.AfterTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Cleans up a completed test instance after its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> because the test step for this instance (if different from the primary step) has terminated. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Deconfiguring the test environment following the test disposal.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.BeforeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Prepares a newly created test instance state before its use. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep" /> because the test step for this instance (if different from the primary step) has not yet started. </para>
        <para> If <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep" /> is false then this method has the opportunity to modify the name or add metadata to the brand new <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> that was created for just this test instance. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Adding or changing slot values.</item><item>Configuring the test environment in advance of test initialization.</item><item>Modifying the name or metadata of the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" nolink="true" />, if <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep" nolink="true" /> is false (since the primary test step has already started execution).</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" nolink="true" /> object in any way UNLESS <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep" nolink="true" /> is false.</item><item>Skipping the test instance by throwing an appropriate <see cref="T:Gallio.Framework.SilentTestException" />.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.DecorateChildTest(Gallio.Framework.Pattern.PatternTestInstanceState,Gallio.Framework.Pattern.PatternTestActions)">
      <summary>
        <para> Decorates the <see cref="T:Gallio.Framework.Pattern.IPatternTestInstanceHandler" /> of a child test before its <see cref="M:Gallio.Framework.Pattern.IPatternTestHandler.BeforeTest(Gallio.Framework.Pattern.PatternTestState)" /> actions have a chance to run. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Execute" /> lifecycle phase. </para>
        <para> This method may apply any number of decorations to the child test's handler by adding actions to the supplied <paramref name="decoratedChildTestActions" /> object. The child test's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. </para>
        <para> A typical use of this method is to augment the <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.SetUpTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> and <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.TearDownTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)" /> behaviors of the child test with additional contributions provided by the parent. </para>
        <para> It is also possible to decorate descendants besides direct children. To do so, decorate the child's <see cref="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.DecorateChildTest(Gallio.Framework.Pattern.PatternTestInstanceState,Gallio.Framework.Pattern.PatternTestActions)" /> behavior to perpetuate the decoration down to more deeply nested descendants. This process of recursive decoration may be carried along to whatever depth is required. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Adding additional actions for the child test to the <paramref name="decoratedChildTestActions" />.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <param name="decoratedChildTestActions">The child test's actions to decorate, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.DisposeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Disposes a test instance that is about to terminate. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Dispose" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Deconfiguring the test fixture following test execution.</item><item>Disposing the test fixture instance.</item><item>Disposing other resources.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.ExecuteTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Executes the test instance. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Execute" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Invoking test methods.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.InitializeTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Initializes a test instance that has just started running. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.Initialize" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Creating the test fixture instance and setting <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType" /> and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance" />.</item><item>Configuring the test fixture in advance of test execution.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.RunTestInstanceBody(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>Runs the body of the test from the Initialize phase through the Dispose phase.</summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <returns>The test outcome</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.SetUpTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Sets up a test instance prior to execution. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.SetUp" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Invoking test setup methods.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestInstanceHandler.TearDownTestInstance(Gallio.Framework.Pattern.PatternTestInstanceState)">
      <summary>
        <para> Tears down a test instance following execution. </para>
        <para> This method runs in the <see cref="T:Gallio.Framework.TestContext" /> of the test instance in the <see cref="F:Gallio.Model.LifecyclePhases.TearDown" /> lifecycle phase. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Invoking test teardown methods.</item><item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data" />.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.IPatternTestParameterHandler">
      <summary>A pattern test parameter handler provides the logic that implements the various phases of the test parameter binding lifecycle.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
      <summary>
        <para> Binds a value to a test parameter. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Associated a value with a slot on the test fixture or test method.</item><item>Storing the object for later use during the test run.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <param name="value">The value to bind to the parameter</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
      <summary>
        <para> Unbinds a test parameter. </para>
        <para> The following actions are typically performed during this phase: <list type="bullet"><item>Releasing any resources used by the test parameter.</item></list></para>
        <para> The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: <list type="bullet"><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest" /> object in any way.</item><item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState" /> object in any way.</item></list></para>
      </summary>
      <param name="testInstanceState">The test instance state, never null</param>
      <param name="value">The value that was bound to the test parameter</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.ISupportDeferredActions">
      <summary>Provides support for performing deferred build actions.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.ISupportDeferredActions.AddDeferredAction(Gallio.Reflection.ICodeElementInfo,System.Int32,Gallio.Action)">
      <summary>Registers a deferred action to be performed when <see cref="M:Gallio.Framework.Pattern.ISupportDeferredActions.ApplyDeferredActions" /> is called.</summary>
      <param name="codeElement">The associated code element, used to report errors if the deferred action throws an exception</param>
      <param name="order">The order in which the action should be applied, from least order to greatest</param>
      <param name="deferredAction">The action to perform</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement" /> or <paramref name="deferredAction" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ISupportDeferredActions.ApplyDeferredActions">
      <summary>Applies all pending deferred in order and clears the list.</summary>
    </member>
    <member name="T:Gallio.Framework.Pattern.ITestBuilder">
      <summary>A test builder applies contributions to a test under construction.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.ApartmentState">
      <summary>Gets or sets the apartment state to be used to run the test.</summary>
      <value>The default value of this property is <see cref="F:System.Threading.ApartmentState.Unknown" />.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.IsParallelizable">
      <summary>Gets or sets whether the test is parallelizable.</summary>
      <value>True if the test is parallelizable. The default value of this property is <c>false</c>.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.IsTestCase">
      <summary>Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.Kind">
      <summary>Gets or sets the value of the <see cref="F:Gallio.Model.MetadataKeys.TestKind" /> metadata entry. (This is a convenience method.)</summary>
      <value>One of the <see cref="T:Gallio.Model.TestKinds" /> constants.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.LocalId">
      <summary>
        <para> Gets a locally unique identifier for this test that satisfies the following conditions: </para>
        <list type="bullet">
          <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
          <item>The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects.</item>
          <item>The identifier is non-null.</item>
        </list>
        <para> The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> and an ordering condition among siblings to guarantee uniqueness. </para>
      </summary>
      <value>The locally unique identifier</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.LocalIdHint">
      <summary>Gets or sets a suggested <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId" /> hint, or null if none. The value returned by this method will be checked for uniqueness and amended as necessary to produce a truly unique <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId" nolink="true" />.</summary>
      <value>The local id hint</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.Order">
      <summary>
        <para> Gets or sets a number that defines an ordering for the test with respect to its siblings. </para>
        <para> Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. </para>
      </summary>
      <value>The test execution order with respect to siblings, initially zero.</value>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.TestActions">
      <summary>Gets the set of actions that describe the behavior of the test.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.TestInstanceActions">
      <summary>Gets the set of actions that describe the behavior of the test's instances.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestBuilder.Timeout">
      <summary>Gets or sets the maximum amount of time the whole test including its setup, teardown and body should be permitted to run. If the test runs any longer than this, it will be aborted by the framework. The timeout may be null to indicate the absence of a timeout.</summary>
      <value>The timeout. Default value is null.</value>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value" /> represents a negative time span</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestBuilder.AddDependency(Gallio.Model.ITest)">
      <summary>Adds a test dependency.</summary>
      <param name="testDependency">The test to add as a dependency</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testDependency" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestBuilder.CreateChild(System.String,Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
      <summary>Creates a child test and returns its builder.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="dataContextBuilder">The data context builder for the new test</param>
      <returns>The builder for the child test</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="dataContextBuilder" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestBuilder.CreateParameter(System.String,Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
      <summary>Creates a test parameter and returns its builder.</summary>
      <param name="name">The test parameter name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="dataContextBuilder">The data context builder for the new test parameter</param>
      <returns>The builder for the test parameter</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="dataContextBuilder" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestBuilder.SetExpectedExceptionType(System.String)">
      <summary>Sets the name of the expected exception type.</summary>
      <param name="typeName">The expected exception type name</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="typeName" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestBuilder.ToTest">
      <summary>Gets the underlying test.</summary>
      <returns>The underlying test</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.ITestComponentBuilder">
      <summary>A test component builder applies contributions to a test or test parameter under construction.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestComponentBuilder.CodeElement">
      <summary>Gets a reference to the point of definition of this test component in the code, or null if unknown.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestComponentBuilder.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestComponentBuilder.Name">
      <summary>Gets or sets the name of the component.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestComponentBuilder.AddMetadata(System.String,System.String)">
      <summary>Adds a metadata key value pair.</summary>
      <param name="key">The metadata key</param>
      <param name="value">The value to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key" /> or <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestComponentBuilder.ToTestComponent">
      <summary>Gets the underlying test component.</summary>
      <returns>The underlying test component</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.ITestDataContextBuilder">
      <summary>A test data context builder applies contributions to a test data context under construction.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestDataContextBuilder.ImplicitDataBindingIndexOffset">
      <summary>
        <para> Gets or sets the offset to add to a test parameter's implicit data binding index to map it into the containing data context. </para>
        <para> This property is used to determine the data binding index of a test parameter that has not been explicitly bound. The offsets are summed cumulatively to produce an implicit data binding index while traversing the chain of containing data contexts while locating the first anonymous data source. </para>
        <para> For example, suppose <c>Y</c> is the second parameter of a test method. If <c>Y</c> does not have an explicit data binding, we will apply implicit data binding rules as follows. <list type="bullet"><item>If <c>Y</c>'s data context contains an anonymous data source, then the implicit data binding index will be 0.</item><item>Otherwise, if <c>Y</c>'s containing data context contains an anonymous data source, then the implicit data binding index will equal the offset specified in <c>Y</c>'s data context: 1 (since it is the second parameter).</item><item>Otherwise, we continue searching containing data contexts and summing their offsets until we find an anonymous data source. If none is found, then data binding will fail.</item></list></para>
      </summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestDataContextBuilder.CreateChild">
      <summary>Creates a child data context.</summary>
      <returns>The builder for the child context</returns>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestDataContextBuilder.DefineDataSource(System.String)">
      <summary>Defines a new data source within this data context if one does not exist. Otherwise returns the existing one.</summary>
      <param name="name">The data source name</param>
      <returns>The defined data source</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestDataContextBuilder.ToPatternTestDataContext">
      <summary>Gets the underlying pattern test data context.</summary>
      <returns>The underlying pattern test data context</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.ITestModelBuilder">
      <summary>A test model builder applies contributions to a test model under construction.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestModelBuilder.ReflectionPolicy">
      <summary>Gets the reflection policy for the model.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.AddAnnotation(Gallio.Model.Annotation)">
      <summary>Adds an annotation to the test model.</summary>
      <param name="annotation">The annotation to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="annotation" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
      <summary>Adds an assembly resolver to the test model's assembly loading policy.</summary>
      <param name="resolver">The resolver to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="resolver" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.CreateTopLevelTest(System.String,Gallio.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
      <summary>Creates a top-level test as a child of the root test and returns its builder.</summary>
      <param name="name">The test name</param>
      <param name="codeElement">The associated code element, or null if none</param>
      <param name="dataContextBuilder">The data context builder for the new test</param>
      <returns>The builder for the top-level test</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="dataContextBuilder" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.PublishExceptionAsAnnotation(Gallio.Reflection.ICodeElementInfo,System.Exception)">
      <summary>Publishes an exception as an annotation about a particular code element.</summary>
      <param name="codeElement">The code element, or null if none</param>
      <param name="ex">The exception to publish</param>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.ToTestModel">
      <summary>Gets the underlying test model.</summary>
      <returns>The underlying test model</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.ITestParameterBuilder">
      <summary>A test builder applies contributions to a test under construction.</summary>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestParameterBuilder.Binder">
      <summary>Gets or sets the data binder for the parameter.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Framework.Pattern.ITestParameterBuilder.TestParameterActions">
      <summary>Gets the set of actions that describe the behavior of the test parameter.</summary>
    </member>
    <member name="M:Gallio.Framework.Pattern.ITestParameterBuilder.ToTestParameter">
      <summary>Gets the underlying test parameter.</summary>
      <returns>The underlying test parameter</returns>
    </member>
    <member name="T:Gallio.Framework.Pattern.DeferredComponentPopulator">
      <summary>Populates components lazily.</summary>
      <param name="codeElementHint">The code element hint to identify the location of the particular components to populate, or null to populate them all</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.PatternTestPopulator">
      <summary>A delegate used to lazily populate the children of an <see cref="T:Gallio.Framework.Pattern.PatternTest" />.</summary>
      <param name="recurse">If true, the populator should recursively populate all of its newly populated test elements in addition to itself</param>
    </member>
    <member name="T:Gallio.Framework.Pattern.TestAction">
      <summary>Performs one primitive action of a test and returns its outcome.</summary>
    </member>
    <member name="T:Gallio.Framework.Text.DiffSet">
      <summary>
        <para> A diff set consists of a sequence of differences between a left document and a right document that indicate changed and unchanged regions. </para>
        <para> If the changes are applied in order to the left document, the right document will be reproduced. If the inverse changes are applied in order to the right document, the left document will be reproduced. </para>This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.DiffSet.ContainsChanges">
      <summary>Returns true if the list of differences contains changed regions.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.DiffSet.Diffs">
      <summary>Gets the list of differences that indicate the changed and unchanged regions between the left and right documents. The diffs span the entire range of the left and right documents and are listed in document order.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.DiffSet.IsEmpty">
      <summary>Returns true if the list of differences is empty which can only occur when both document being compared are empty.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.DiffSet.LeftDocument">
      <summary>Gets the left document.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.DiffSet.RightDocument">
      <summary>Gets the right document.</summary>
    </member>
    <member name="M:Gallio.Framework.Text.DiffSet.GetDiffSet(System.String,System.String)">
      <summary>Gets the set of differences between a left document and a right document.</summary>
      <param name="leftDocument">The left document</param>
      <param name="rightDocument">The right document</param>
      <returns>The set of differences</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="leftDocument" /> or <paramref name="rightDocument" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Text.DiffSet.Simplify">
      <summary>
        <para> Simplifies the diff for presentation. </para>
        <para> This method applies a series of heuristics to make the diff easier to read but perhaps less optimal, including the following: <list type="bullet"><item>Adjacent diffs of the same kind are combined.</item><item>Small unchanged regions sandwiched between larger changed regions are converted to larger changed regions. This improves the case when only a few scattered characters coincidentally match between the two documents.</item></list></para>
      </summary>
      <returns>Returns a simplified diff</returns>
    </member>
    <member name="M:Gallio.Framework.Text.DiffSet.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>
        <para> Writes the diffs using the <see cref="F:Gallio.Framework.Text.DiffStyle.Interleaved" /> presentation style and no limits on the context length. </para>
        <para> For the purposes of determining additions and deletions, the left document is considered the original and the right document is the considered to be the one that was modified. Changes are annotated by markers: by <see cref="P:Gallio.Model.Logging.Marker.DiffAddition" />, <see cref="P:Gallio.Model.Logging.Marker.DiffDeletion" /> and <see cref="P:Gallio.Model.Logging.Marker.DiffChange" />. </para>
      </summary>
      <param name="writer">The test log stream writer to receive the highlighted document</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref nameref="writer" /> if null</exception>
    </member>
    <member name="M:Gallio.Framework.Text.DiffSet.WriteTo(Gallio.Model.Logging.TestLogStreamWriter,Gallio.Framework.Text.DiffStyle)">
      <summary>
        <para> Writes the diffs using the specified presentation style and no limits on the context length. </para>
        <para> Changes are annotated by markers: <see cref="P:Gallio.Model.Logging.Marker.DiffAddition" />, <see cref="P:Gallio.Model.Logging.Marker.DiffDeletion" /> and <see cref="P:Gallio.Model.Logging.Marker.DiffChange" />. </para>
        <para> If the style is <see cref="F:Gallio.Framework.Text.DiffStyle.Interleaved" /> then the left document is considered the original and the right document is the considered to be the one that was modified so deletions appear within the left and additions within the right. </para>
        <para> If the style is <see cref="F:Gallio.Framework.Text.DiffStyle.LeftOnly" /> or <see cref="F:Gallio.Framework.Text.DiffStyle.RightOnly" /> then only the deletion and changed markers are used. </para>
      </summary>
      <param name="writer">The test log stream writer to receive the highlighted document</param>
      <param name="style">The presentation style</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref nameref="writer" /> if null</exception>
    </member>
    <member name="M:Gallio.Framework.Text.DiffSet.WriteTo(Gallio.Model.Logging.TestLogStreamWriter,Gallio.Framework.Text.DiffStyle,System.Int32)">
      <summary>
        <para> Writes the diffs using the specified presentation style and max context length. </para>
        <para> Changes are annotated by markers: <see cref="P:Gallio.Model.Logging.Marker.DiffAddition" />, <see cref="P:Gallio.Model.Logging.Marker.DiffDeletion" /> and <see cref="P:Gallio.Model.Logging.Marker.DiffChange" />. </para>
        <para> If the style is <see cref="F:Gallio.Framework.Text.DiffStyle.Interleaved" /> then the left document is considered the original and the right document is the considered to be the one that was modified so deletions appear within the left and additions within the right. </para>
        <para> If the style is <see cref="F:Gallio.Framework.Text.DiffStyle.LeftOnly" /> or <see cref="F:Gallio.Framework.Text.DiffStyle.RightOnly" /> then only the deletion and changed markers are used. </para>
      </summary>
      <param name="writer">The test log stream writer to receive the highlighted document</param>
      <param name="style">The presentation style</param>
      <param name="maxContextLength">The maximum number of characters of unchanged regions to display for context, or <see cref="F:System.Int32.MaxValue" /> for no limit. Extraneous context is split in two with an ellipsis inserted in between both halves</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref nameref="writer" /> if null</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxContextLength" /> is negative</exception>
    </member>
    <member name="T:Gallio.Framework.Text.Diff">
      <summary>Describes the difference between a range of the left document and a range of the right document. Each diff is accompanied by a <see cref="T:Gallio.Framework.Text.DiffKind" /> that indicates whether it represents an identical region or one with changes.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Diff.Kind">
      <summary>Gets the diff kind which indicateds whether there is a change over the range covered by the diff.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Diff.LeftRange">
      <summary>Gets the range of the left document that is affected.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Diff.RightRange">
      <summary>Gets the range of the right document that is affected.</summary>
    </member>
    <member name="M:Gallio.Framework.Text.Diff.Equals(Gallio.Framework.Text.Diff)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Diff.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Diff.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Diff.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="T:Gallio.Framework.Text.Range">
      <summary>A range denotes a segment of a string or other indexed data structure.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Range.EndIndex">
      <summary>Gets the ending index of the range, which is the start index plus the length. The ending index is one past the last character within the range.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Range.Length">
      <summary>Gets the length of the range.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Range.StartIndex">
      <summary>Gets the starting index of the range.</summary>
    </member>
    <member name="M:Gallio.Framework.Text.Range.Between(System.Int32,System.Int32)">
      <summary>Creates a new range between the start index (inclusively) and end index (exclusively).</summary>
      <param name="startIndex">The start index</param>
      <param name="endIndex">The end index</param>
      <returns>The new range</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="startIndex" /> is negative or greater than <paramref name="endIndex" /></exception>
    </member>
    <member name="M:Gallio.Framework.Text.Range.Equals(Gallio.Framework.Text.Range)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Range.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Range.ExtendWith(Gallio.Framework.Text.Range)">
      <summary>Extends a range into an adjacent range and returns the combined range.</summary>
      <param name="range">The adjacent range</param>
      <returns>The extended range</returns>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="range" /> is not an adjacent range</exception>
    </member>
    <member name="M:Gallio.Framework.Text.Range.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Range.SubstringOf(System.String)">
      <summary>Gets a substring of the specified text using this range.</summary>
      <param name="text">The source text</param>
      <returns>The substring of the source text that represents this range</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Text.Range.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="T:Gallio.Framework.Text.Substring">
      <summary>A substring provides a convenient representation for a range within a larger string.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Substring.Content">
      <summary>Returns the whole string.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Substring.Item(System.Int32)">
      <summary>Gets the character with a particular index.</summary>
      <param name="index">The index</param>
      <value>The character</value>
      <exception cref="T:System.IndexOutOfRangeException">Thrown if the index is out of range</exception>
    </member>
    <member name="P:Gallio.Framework.Text.Substring.Length">
      <summary>Gets the length of the substring.</summary>
    </member>
    <member name="P:Gallio.Framework.Text.Substring.Range">
      <summary>Returns the range of the underlying string represented by the substring.</summary>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.Equals(Gallio.Framework.Text.Substring)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.Extract(System.Int32)">
      <summary>Returns a substring of the substring.</summary>
      <param name="index">The index at which to start</param>
      <returns>The substring</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index" /> is negative or if is greater than <see cref="P:Gallio.Framework.Text.Substring.Length" /></exception>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.Extract(System.Int32,System.Int32)">
      <summary>Returns a substring of the substring.</summary>
      <param name="index">The index at which to start</param>
      <param name="length">The length of the substring to produce</param>
      <returns>The substring</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index" /> or <paramref name="length" /> are negative or if their sum is greater than <see cref="P:Gallio.Framework.Text.Substring.Length" /></exception>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.FindCommonPrefixLength(Gallio.Framework.Text.Substring)">
      <summary>Finds the length of the common prefix of this substring and another one.</summary>
      <param name="other">The other substring</param>
      <returns>The common prefix length, or 0 if the substrings have no prefix in common</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.FindCommonSuffixLength(Gallio.Framework.Text.Substring)">
      <summary>Finds the length of the common suffix of this substring and another one.</summary>
      <param name="other">The other substring</param>
      <returns>The common suffix length, or 0 if the substrings have no suffix in common</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Framework.Text.Substring.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="T:Gallio.Framework.Text.DiffKind">
      <summary>Describes whether a difference represents a changed or unchanged region.</summary>
    </member>
    <member name="F:Gallio.Framework.Text.DiffKind.NoChange">
      <summary>Indicates there is no change between the left and right documents over the ranges described by the diff.</summary>
    </member>
    <member name="F:Gallio.Framework.Text.DiffKind.Change">
      <summary>Indicates there is a change between the left and right documents over the ranges described by the diff. Text may have been added, removed, or edited.</summary>
    </member>
    <member name="T:Gallio.Framework.Text.DiffStyle">
      <summary>Specifies the presentation style for a <see cref="T:Gallio.Framework.Text.DiffSet" />.</summary>
    </member>
    <member name="F:Gallio.Framework.Text.DiffStyle.Interleaved">
      <summary>Display the left and right document contents and diffs fully interleaved.</summary>
    </member>
    <member name="F:Gallio.Framework.Text.DiffStyle.LeftOnly">
      <summary>Display only the left document contents.</summary>
    </member>
    <member name="F:Gallio.Framework.Text.DiffStyle.RightOnly">
      <summary>Display only the right document contents.</summary>
    </member>
    <member name="T:Gallio.Framework.Utilities.SampleRunner">
      <summary>
        <para> Runs sample test cases within an embedded copy of the test runner and provides access to the resulting test report. Logs debug output from the embedded test runner while the sample tests run. </para>
        <para> This utility class is intended to help write integration tests for test framework features. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Utilities.SampleRunner.PackageConfig">
      <summary>
        <para> Gets the package configuration object for the test run. </para>
        <para> The returned object may be modified prior to running the tests to configure various parameters of the test run. </para>
      </summary>
    </member>
    <member name="P:Gallio.Framework.Utilities.SampleRunner.Report">
      <summary>Gets the test report that was produced by the test run.</summary>
    </member>
    <member name="P:Gallio.Framework.Utilities.SampleRunner.Result">
      <summary>Gets the result of the test run.</summary>
    </member>
    <member name="P:Gallio.Framework.Utilities.SampleRunner.TestRunnerFactoryName">
      <summary>Gets or sets the name of the test runner factory to use.</summary>
      <value>The test runner factory name, defaults to <see cref="F:Gallio.Runner.StandardTestRunnerFactoryNames.Local" /></value>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.AddAssembly(System.Reflection.Assembly)">
      <summary>Adds a test assembly to the package configuration, if not already added.</summary>
      <param name="assembly">The assembly to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.AddFilter(Gallio.Model.Filters.Filter{Gallio.Model.ITest})">
      <summary>Adds a test filter to the combined list of filters that select which tests to include in the run, if not already added.</summary>
      <param name="filter">The filter to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filter" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.AddFixture(System.Type)">
      <summary>Adds a test fixture type to the list of filters, and automatically adds its containing test assembly to the package configuration, if not already added.</summary>
      <param name="fixtureType">The test fixture type to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fixtureType" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.AddMethod(System.Type,System.String)">
      <summary>Adds a test method to the list of filters, and automatically adds its containing test assembly to the package configuration, if not already added.</summary>
      <param name="fixtureType">The test fixture type</param>
      <param name="methodName">The test method name</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fixtureType" /> or <paramref name="methodName" /> is null</exception>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.Explore">
      <summary>Explores the tests but does not run them.</summary>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.GetPrimaryTestStepRun(Gallio.Reflection.CodeReference)">
      <summary>Gets the primary test step run of a test with the given code reference. If there are multiple primary steps, returns the first one found.</summary>
      <param name="codeReference">The code reference of the test</param>
      <returns>The first test step run, or null if not found</returns>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestCaseRunsWithin(Gallio.Reflection.CodeReference)">
      <summary>Gets all test step runs that represent test cases within a test with the specified code reference.</summary>
      <param name="codeReference">The code reference of the test</param>
      <returns>The first test step run, or null if not found</returns>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestData(Gallio.Reflection.CodeReference)">
      <summary>Gets information about the test with the given code reference.</summary>
      <param name="codeReference">The code reference of the test</param>
      <returns>The test data, or null if not found</returns>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestStepRuns(Gallio.Reflection.CodeReference)">
      <summary>Gets all test step runs with the given code reference.</summary>
      <param name="codeReference">The code reference of the test</param>
      <returns>The enumeration of test step runs, or null if not found</returns>
    </member>
    <member name="M:Gallio.Framework.Utilities.SampleRunner.Run">
      <summary>Runs the tests.</summary>
    </member>
    <member name="T:Gallio.Model.AggregateTestExplorer">
      <summary>An aggregate test explorer combines multiple test explorers from different sources to incorporate all of their contributions.</summary>
    </member>
    <member name="M:Gallio.Model.AggregateTestExplorer.AddExplorersForRequestedFrameworks(System.Collections.Generic.IEnumerable{Gallio.Model.ITestFramework})">
      <summary>Adds test explorers for the frameworks requested by the test model's test package.</summary>
      <param name="frameworks">The frameworks</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="frameworks" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.AggregateTestExplorer.AddTestExplorer(Gallio.Model.ITestExplorer)">
      <summary>Adds a test explorer to the aggregate.</summary>
      <param name="explorer">The explorer to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="explorer" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="explorer" /> has a different <see cref="T:Gallio.Model.TestModel" /></exception>
    </member>
    <member name="M:Gallio.Model.AggregateTestExplorer.ExploreAssembly(Gallio.Reflection.IAssemblyInfo,System.Action{Gallio.Model.ITest})">
      <summary>Explores the tests defined by an assembly and links them into the <see cref="P:Gallio.Model.ITestExplorer.TestModel" />.</summary>
      <param name="assembly">The assembly</param>
      <param name="consumer">An action to perform on each assembly-level test explored, or null if no action is required</param>
    </member>
    <member name="M:Gallio.Model.AggregateTestExplorer.ExploreType(Gallio.Reflection.ITypeInfo,System.Action{Gallio.Model.ITest})">
      <summary>Explores the tests defined by a type and links them into the <see cref="P:Gallio.Model.ITestExplorer.TestModel" />.</summary>
      <param name="type">The type</param>
      <param name="consumer">An action to perform on each type-level test explored, or null if no action is required</param>
    </member>
    <member name="M:Gallio.Model.AggregateTestExplorer.FinishModel">
      <summary>Performs any final actions after exploration has taken place to ensure that we have a complete and internally consistent model.</summary>
    </member>
    <member name="M:Gallio.Model.AggregateTestExplorer.IsTest(Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="element">The element</param>
      <returns>True if the element represents a test</returns>
    </member>
    <member name="T:Gallio.Model.Annotation">
      <summary>An annotation associates a message with a source code location to inform the user about a problem.</summary>
    </member>
    <member name="P:Gallio.Model.Annotation.CodeElement">
      <summary>Gets the code element associated with the annotation.</summary>
    </member>
    <member name="P:Gallio.Model.Annotation.Details">
      <summary>Gets additional details such as exception text, or null if none.</summary>
    </member>
    <member name="P:Gallio.Model.Annotation.Message">
      <summary>Gets the annotation message.</summary>
    </member>
    <member name="P:Gallio.Model.Annotation.Type">
      <summary>Gets the annotation type.</summary>
    </member>
    <member name="T:Gallio.Model.BaseInfo">
      <summary>Abstract base class for read-only reflection model objects. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.BaseInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfo.Equals(Gallio.Model.BaseInfo)">
      <summary>Compares this object's source for equality with the other's source.</summary>
      <param name="other">The other object</param>
      <returns>True if the objects are equal</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfo.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfo.op_Equality(Gallio.Model.BaseInfo,Gallio.Model.BaseInfo)">
      <summary>Compares two objects for equality.</summary>
      <returns>True if they are equal</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfo.op_Inequality(Gallio.Model.BaseInfo,Gallio.Model.BaseInfo)">
      <summary>Compares two objects for inequality.</summary>
      <returns>True if they are not equal</returns>
    </member>
    <member name="T:Gallio.Model.BaseInfoList`2">
      <summary>The abstract base class of a list that wraps model objects with their corresponding reflection types derived from <see cref="T:Gallio.Model.BaseInfo" />. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
      <typeparam name="TModel">The model object type</typeparam>
      <typeparam name="TInfo">The reflection type</typeparam>
    </member>
    <member name="P:Gallio.Model.BaseInfoList`2.Count">
      <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
      <value>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</value>
    </member>
    <member name="P:Gallio.Model.BaseInfoList`2.IsReadOnly">
      <summary>Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</summary>
      <value>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</value>
    </member>
    <member name="M:Gallio.Model.BaseInfoList`2.AsModelList">
      <summary>Returns a wrapper for the list of elements using the model object's type instead of the reflection object's type.</summary>
      <returns>The model list</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfoList`2.GetEnumerator">
      <summary>Returns an enumerator that iterates through the collection.</summary>
      <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfoList`2.Unwrap(`1)">
      <summary>Unwraps the specified output item.</summary>
      <param name="infoItem">The output item</param>
      <returns>The corresponding input item or null if the output item is a valid wrapper</returns>
    </member>
    <member name="M:Gallio.Model.BaseInfoList`2.Wrap(`0)">
      <summary>Wraps the specified input item.</summary>
      <param name="inputItem">The input item</param>
      <returns>The output item</returns>
    </member>
    <member name="T:Gallio.Model.BaseTest">
      <summary>Base implementation of <see cref="T:Gallio.Model.ITest" />.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.Children">
      <summary>Gets a read-only list of the children of this test.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.Dependencies">
      <summary>Gets a read-only list of the dependencies of this test.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.FullName">
      <summary>
        <para> Gets the full name of the test. The full name is derived by concatenating the <see cref="P:Gallio.Model.ITest.FullName" /> of the <see cref="P:Gallio.Model.ITest.Parent" /> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.ITestComponent.Name" /> of this test. </para>
        <para> The full name of the root test is empty. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.IsTestCase">
      <summary>Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.LocalId">
      <summary>
        <para> Gets a locally unique identifier for this test that satisfies the following conditions: </para>
        <list type="bullet">
          <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
          <item>The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects.</item>
          <item>The identifier is non-null.</item>
        </list>
        <para> The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> and an ordering condition among siblings to guarantee uniqueness. </para>
      </summary>
      <value>The locally unique identifier</value>
    </member>
    <member name="P:Gallio.Model.BaseTest.LocalIdHint">
      <summary>Gets or sets a suggested <see cref="P:Gallio.Model.BaseTest.LocalId" /> hint, or null if none. The value returned by this method will be checked for uniqueness and amended as necessary to produce a truly unique <see cref="P:Gallio.Model.BaseTest.LocalId" nolink="true" />.</summary>
      <value>The local id hint</value>
    </member>
    <member name="P:Gallio.Model.BaseTest.Order">
      <summary>
        <para> Gets or sets a number that defines an ordering for the test with respect to its siblings. </para>
        <para> Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. </para>
      </summary>
      <value>The test execution order with respect to siblings, initially zero.</value>
    </member>
    <member name="P:Gallio.Model.BaseTest.Parameters">
      <summary>Gets a read-only list of the parameters of this test. Each parameter must have a unique name. The order in which the parameters appear is not significant.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTest.Parent">
      <summary>Gets or sets the parent of this test, or null if this is the root test.</summary>
    </member>
    <member name="M:Gallio.Model.BaseTest.AddChild(Gallio.Model.ITest)">
      <summary>Adds a child test and sets its <see cref="P:Gallio.Model.ITest.Parent" /> property.</summary>
      <param name="test">The test to add as a child</param>
    </member>
    <member name="M:Gallio.Model.BaseTest.AddDependency(Gallio.Model.ITest)">
      <summary>Adds a test dependency.</summary>
      <param name="test">The test to add as a dependency</param>
    </member>
    <member name="M:Gallio.Model.BaseTest.AddParameter(Gallio.Model.ITestParameter)">
      <summary>Adds a test parameter and sets its <see cref="P:Gallio.Model.ITestParameter.Owner" /> property.</summary>
      <param name="parameter">The test parameter to add</param>
    </member>
    <member name="M:Gallio.Model.BaseTest.GetUniqueLocalIdForChild(System.String)">
      <summary>Obtains a unique local id for a child of this test.</summary>
      <param name="localIdHint">A suggested id which will be used if no conflicts occur</param>
      <returns>The unique local id to use</returns>
    </member>
    <member name="M:Gallio.Model.BaseTest.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.BaseTestComponent">
      <summary>Base implementation of <see cref="T:Gallio.Model.ITestComponent" />. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestComponent.CodeElement">
      <summary>Gets a reference to the point of definition of this test component in the code, or null if unknown.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestComponent.Kind">
      <summary>Gets or sets the value of the <see cref="F:Gallio.Model.MetadataKeys.TestKind" /> metadata entry. (This is a convenience method.)</summary>
      <value>One of the <see cref="T:Gallio.Model.TestKinds" /> constants.</value>
    </member>
    <member name="P:Gallio.Model.BaseTestComponent.Metadata">
      <summary>Gets the metadata of the component.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestComponent.Name">
      <summary>Gets the name of the component.</summary>
    </member>
    <member name="M:Gallio.Model.BaseTestComponent.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.BaseTestExplorer">
      <summary>A base test explorer that does nothing. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestExplorer.TestModel">
      <summary>Gets the test model that is incrementally populated by the test explorer as it explores tests.</summary>
    </member>
    <member name="T:Gallio.Model.BaseTestFramework">
      <summary>Abstract base class for test framework implementations. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.BaseTestFramework.ConfigureTestDomain(Gallio.Model.TestDomainSetup)">
      <summary>Applies additional contributions to a test domain, if desired.</summary>
      <param name="testDomainSetup">The test domain setup to modify</param>
    </member>
    <member name="T:Gallio.Model.BaseTestParameter">
      <summary>Base implementation of <see cref="T:Gallio.Model.ITestParameter" />.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestParameter.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestParameter.Owner">
      <summary>Gets or sets the test that owns this parameter, or null if this parameter does not yet have an owner.</summary>
    </member>
    <member name="T:Gallio.Model.BaseTestStep">
      <summary>Base implementation of <see cref="T:Gallio.Model.ITestStep" />.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.FullName">
      <summary>
        <para> Gets the full name of the step. </para>
        <para> The full name is derived by concatenating the <see cref="P:Gallio.Model.ITestStep.FullName" /> of the <see cref="P:Gallio.Model.ITestStep.Parent" /> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.ITestComponent.Name" /> of this test step. </para>
        <para> The full name of the root test step is empty. </para>
        <para> Examples: <list type="bullet"><item><term>""</term><description>The root step</description></item><item><term>"SomeAssembly/SomeFixture/SomeTest"</term><description>The step corresponding to SomeTest</description></item><item><term>"SomeAssembly/SomeFixture/SomeTest/ChildStep"</term><description>A child step of SomeTest</description></item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.IsDynamic">
      <summary>
        <para> Returns true if the test step is dynamic. A dynamic test step is one whose execution is governed by parameters that are not known a priori. </para>
        <para> For example, a primary test step is generally not dynamic because its existence usually only depends on statically known information derived from the test model. However, a child test step created at runtime by a data binding process might be considered dynamic if the data items that were used may change between test runs even when the static structure of the test code remains the same. So a test step that uses random data items or that owes its existence to processes that are not entirely under the control of the test framework should be flagged as dynamic. </para>
        <para> It can be useful to distinguish between static and dynamic test steps when correlating results across test runs. Dynamic test steps are more likely to change in dramatic ways between test runs than static test steps. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.IsPrimary">
      <summary>
        <para> Returns true if the test step is the top node of a hierarchy of test steps that are all associated with the same test. In the case where a single test step is associated with a test, then it is the primary test step. There may be multiple primary test steps of the same test if they are not directly related by ancestry (ie. one does not contain the other). </para>
        <para> A non-primary test step is known as a derived test step. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.IsTestCase">
      <summary>Returns true if the test step represents a distinct test case. A test case is typically a leaf of the test step hierarchy.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.Parent">
      <summary>Gets the step that contains this one, or null if this instance represents the root step of the test step tree.</summary>
    </member>
    <member name="P:Gallio.Model.BaseTestStep.Test">
      <summary>Gets the test to which this step belongs.</summary>
    </member>
    <member name="M:Gallio.Model.BaseTestStep.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.DefaultTestPackageExplorerFactory">
      <summary>Default implementation of a test package explorer factory that aggregates over all registered frameworks.</summary>
    </member>
    <member name="M:Gallio.Model.DefaultTestPackageExplorerFactory.CreateTestExplorer(Gallio.Model.TestPackageConfig,Gallio.Reflection.IReflectionPolicy)">
      <summary>Creates a test explorer with the specified reflection policy.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="reflectionPolicy">The reflection policy</param>
      <returns>The test explorer</returns>
    </member>
    <member name="T:Gallio.Model.LifecyclePhases">
      <summary>Defines the names of common test step lifecycle phases. Custom phases may also be defined. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.Dispose">
      <summary>The test step's context is being disposed. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.Execute">
      <summary>The test step is executing its main body. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.Finishing">
      <summary>The test step is finishing. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.Initialize">
      <summary>The test is being initialize. (Fixture construction, etc.) This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.SetUp">
      <summary>The test step is being set up. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.Starting">
      <summary>The test step is starting. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.LifecyclePhases.TearDown">
      <summary>The test step is being torn down. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Model.MetadataKeys">
      <summary>Provides common metadata keys. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.AuthorEmail">
      <summary>The metadata key for the author's email. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.AuthorHomepage">
      <summary>The metadata key for the author's homepage. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.AuthorName">
      <summary>The metadata key for the author's name. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Category">
      <summary>The metadata key for the name of a category to which a test belongs. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.CodeBase">
      <summary>The matadata key for the location of an assembly as a local file path or as a Uri. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Company">
      <summary>The metadata key for the name of the company associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Configuration">
      <summary>The metadata key for build/release configuration information associated with a test. It describes the target environment or usage for the test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Copyright">
      <summary>The metadata key for a copyright associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.DataLocation">
      <summary>The metadata key for specifying the origin of data used by a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Description">
      <summary>The metadata key for the description of a test component. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.ExpectedException">
      <summary>The metadata key for the expected exception type which should be the name, full name or assembly-qualified name of the expected exception type. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.ExplicitReason">
      <summary>The metadata key that describes the reason that a test should be run explicitly. (Tests may of course be marked explicit without a declared reason.) This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.FileVersion">
      <summary>The metadata key for a file version number associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.IgnoreReason">
      <summary>The metadata key that describes the reason that a test is being ignored. (Tests may of course be ignored without a declared reason.) This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Importance">
      <summary>The metadata key for the importance of a test component as the string representation of one of the <c>TestImportance</c> constants in MbUnit or its equivalent. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.InformationalVersion">
      <summary>The metadata key for an informational version number associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.PendingReason">
      <summary>The metadata key that describes the reason that a test is pending. (Tests may of course be marked pending without a declared reason.) This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Product">
      <summary>The metadata key for a product associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.TestKind">
      <summary>The metadata key used to describe the kind of a test as the string representation of one of the <see cref="T:Gallio.Model.TestKinds" /> constants. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.TestsOn">
      <summary>The metadata key for the name of the type being tested. The associated value should be the full name of the type from <see cref="P:System.Type.FullName" /> or the assembly qualified name of the type from <see cref="P:System.Type.AssemblyQualifiedName" />. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Title">
      <summary>The metadata key for a title associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Trademark">
      <summary>The metadata key for a trademark associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.Version">
      <summary>The metadata key for a version number associated with a test. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.MetadataKeys.XmlDocumentation">
      <summary>The metadata key for the XML documentation of the test derived from XML code documentation comments. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Model.ModelException">
      <summary>The type of exception thrown when test model and test framework operations fail.</summary>
    </member>
    <member name="T:Gallio.Model.ModelUtils">
      <summary>Provides utility functions for manipulating the object model. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.ModelUtils.PopulateMetadataFromAssembly(Gallio.Reflection.IAssemblyInfo,Gallio.Collections.PropertyBag)">
      <summary>
        <para> Populates the provided metadata map with asembly-level metadata derived from custom attributes. </para>
        <para> Currently recognized attributes: <list type="bullet"><item><see cref="T:System.Reflection.AssemblyCompanyAttribute" /></item><item><see cref="T:System.Reflection.AssemblyConfigurationAttribute" /></item><item><see cref="T:System.Reflection.AssemblyCopyrightAttribute" /></item><item><see cref="T:System.Reflection.AssemblyDescriptionAttribute" /></item><item><see cref="T:System.Reflection.AssemblyFileVersionAttribute" /></item><item><see cref="T:System.Reflection.AssemblyInformationalVersionAttribute" /></item><item><see cref="T:System.Reflection.AssemblyProductAttribute" /></item><item><see cref="T:System.Reflection.AssemblyTitleAttribute" /></item><item><see cref="T:System.Reflection.AssemblyTrademarkAttribute" /></item><item><see cref="T:System.Reflection.AssemblyVersionAttribute" /></item></list></para>
      </summary>
      <param name="assembly">The assembly</param>
      <param name="metadataMap">The metadata map</param>
    </member>
    <member name="T:Gallio.Model.NullTestExplorer">
      <summary>A null test explorer. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.RootTest">
      <summary>The root test in the test tree.</summary>
    </member>
    <member name="P:Gallio.Model.RootTest.TestControllerFactory">
      <summary>Gets a <see cref="T:Gallio.Model.Execution.ITestController" /><see cref="T:Gallio.Func`1" /> to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller.</summary>
      <value>The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above)</value>
    </member>
    <member name="T:Gallio.Model.TestComponentInfo">
      <summary>A read-only implementation of <see cref="T:Gallio.Model.ITestComponent" /> for reflection. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.TestComponentInfo.CodeElement">
      <summary>Gets a reference to the point of definition of this test component in the code, or null if unknown.</summary>
    </member>
    <member name="P:Gallio.Model.TestComponentInfo.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Model.TestComponentInfo.Metadata">
      <summary>Gets the metadata of the component.</summary>
    </member>
    <member name="P:Gallio.Model.TestComponentInfo.Name">
      <summary>Gets the name of the component.</summary>
    </member>
    <member name="T:Gallio.Model.TestDomainSetup">
      <summary>Specifies setup options for a test domain. A test domain represents an isolated host environment within which a subset of a test package will be loaded, explored and run.</summary>
    </member>
    <member name="P:Gallio.Model.TestDomainSetup.TestPackageConfig">
      <summary>Gets or sets the test package configuration to load in the test domain.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.TestDomainSetup.MergeFrom(Gallio.Model.TestDomainSetup)">
      <summary>Merges the contents of another test domain setup into this one.</summary>
      <param name="source">The source setup</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.TestExplorationOptions">
      <summary>Provides options that control how test exploration occurs. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Model.TestExplorationOptions.Copy">
      <summary>Creates a copy of the options.</summary>
      <returns>The copy</returns>
    </member>
    <member name="T:Gallio.Model.TestInfo">
      <summary>A read-only implementation of <see cref="T:Gallio.Model.ITest" /> for reflection. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.TestInfo.FullName">
      <summary>
        <para> Gets the full name of the test. The full name is derived by concatenating the <see cref="P:Gallio.Model.ITest.FullName" /> of the <see cref="P:Gallio.Model.ITest.Parent" /> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.ITestComponent.Name" /> of this test. </para>
        <para> The full name of the root test is empty. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestInfo.IsTestCase">
      <summary>Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only.</summary>
    </member>
    <member name="P:Gallio.Model.TestInfo.LocalId">
      <summary>
        <para> Gets a locally unique identifier for this test that satisfies the following conditions: </para>
        <list type="bullet">
          <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
          <item>The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects.</item>
          <item>The identifier is non-null.</item>
        </list>
        <para> The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> and an ordering condition among siblings to guarantee uniqueness. </para>
      </summary>
      <value>The locally unique identifier</value>
    </member>
    <member name="T:Gallio.Model.TestInfoList">
      <summary>Wraps a list of <see cref="T:Gallio.Model.ITest" /> for reflection. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.TestKinds">
      <summary>Specifies the kind of a test component. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Assembly">
      <summary>The test represents the tests contained in a single test assembly. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Custom">
      <summary>The test is of some other unspecified kind. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Error">
      <summary>The test is an error placeholder used in place of a test when an error occurs during test enumeration. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Fixture">
      <summary>The test represents a test fixture. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Framework">
      <summary>The test represents a grouping of all contributions offered by a given test framework. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Group">
      <summary>The test represents a grouping of tests for descriptive purposes. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Namespace">
      <summary>The test represents the tests contained in a single test namespace. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Root">
      <summary>The test represents the root of the test tree. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Suite">
      <summary>The test represents a test suite. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.TestKinds.Test">
      <summary>The test represents a test case. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Model.TestModel">
      <summary>The test model provides access to the contents of the test tree generated from a test package by the test enumeration process. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.TestModel.AllTests">
      <summary>Recursively enumerates all tests including the root test.</summary>
    </member>
    <member name="P:Gallio.Model.TestModel.Annotations">
      <summary>
        <para> Gets the read-only list of annotations. </para>
        <para> An annotation is an informational, warning or error message associated with a code element in the test model. </para>
        <para> Test frameworks publish annotations on the test model that describe usage errors or warnings about problems that may prevent tests from running, such as using a custom attribute incorrectly. They may also emit informational annotations to draw the user's attention, such as by flagging ignored or pending tests. </para>
        <para> The presentation of annotations is undefined. A command-line test runner might simply log them whereas an IDE plugin could generate new task items to incorporate them into the UI. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestModel.RootTest">
      <summary>Gets the root test in the model.</summary>
    </member>
    <member name="P:Gallio.Model.TestModel.TestPackage">
      <summary>Gets the test package.</summary>
    </member>
    <member name="M:Gallio.Model.TestModel.AddAnnotation(Gallio.Model.Annotation)">
      <summary>Adds an annotation.</summary>
      <param name="annotation">The annotation to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="annotation" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.TestPackage">
      <summary>A test package describes the resources that have been loaded in in preparation for enumerating and running the tests they contain. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackage.Assemblies">
      <summary>Gets the assemblies that belong to the test package.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackage.Config">
      <summary>Gets the test package configuration.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackage.Loader">
      <summary>Gets the loader for the package.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackage.ReflectionPolicy">
      <summary>Gets the reflection policy.</summary>
    </member>
    <member name="M:Gallio.Model.TestPackage.AddAssembly(Gallio.Reflection.IAssemblyInfo)">
      <summary>Adds an assembly to the test package.</summary>
      <param name="assembly">The assembly to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.TestPackageConfig">
      <summary>A test package configuration specifies the options used by a test runner to load tests into memory for execution. The package may contain multiple test assemblies that are to be loaded together for test execution. It can also be serialized as XML or using .Net remoting for persistence and remote operation. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackageConfig.AssemblyFiles">
      <summary>Gets the list of relative or absolute paths of test assembly files.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackageConfig.ExcludedFrameworkIds">
      <summary>Gets the list of test framework IDs that are to be excluded from the test exploration process.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackageConfig.HintDirectories">
      <summary>Gets the list of hint directories used to resolve test assemblies and other files.</summary>
    </member>
    <member name="P:Gallio.Model.TestPackageConfig.HostSetup">
      <summary>Gets or sets the host setup parameters.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.TestPackageConfig.Canonicalize(System.String)">
      <summary>Makes all paths in this instance absolute.</summary>
      <param name="baseDirectory">The base directory for resolving relative paths, or null to use the current directory</param>
    </member>
    <member name="M:Gallio.Model.TestPackageConfig.Copy">
      <summary>Creates a copy of the test package.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Model.TestPackageConfig.IsFrameworkRequested(System.Guid)">
      <summary>Returns true if the framework with the specified id should be used to explore the contents of the test package.</summary>
      <param name="frameworkId">The framework id</param>
      <returns>True if the framework is requested</returns>
    </member>
    <member name="T:Gallio.Model.TestParameterInfo">
      <summary>A read-only implementation of <see cref="T:Gallio.Model.ITestParameter" /> for reflection. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.TestParameterInfoList">
      <summary>Wraps a list of <see cref="T:Gallio.Model.ITestParameter" /> for reflection. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.TestResult">
      <summary>A test result describes the final result of having executed a test. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.TestResult.AssertCount">
      <summary>Gets or sets the number of assertions evaluated by the test, including its children.</summary>
    </member>
    <member name="P:Gallio.Model.TestResult.Duration">
      <summary>Gets or sets the test duration in seconds, including its children.</summary>
    </member>
    <member name="P:Gallio.Model.TestResult.Outcome">
      <summary>Gets or sets the test outcome, including its children (unless they were skipped or are otherwise irrelevant to the outcome of their parent).</summary>
      <value>Defaults to <see cref="P:Gallio.Model.TestOutcome.Inconclusive" />.</value>
    </member>
    <member name="T:Gallio.Model.TestStepInfo">
      <summary>A read-only implementation of <see cref="T:Gallio.Model.ITestStep" /> for reflection. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.TestStepInfo.FullName">
      <summary>
        <para> Gets the full name of the step. </para>
        <para> The full name is derived by concatenating the <see cref="P:Gallio.Model.ITestStep.FullName" /> of the <see cref="P:Gallio.Model.ITestStep.Parent" /> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.ITestComponent.Name" /> of this test step. </para>
        <para> The full name of the root test step is empty. </para>
        <para> Examples: <list type="bullet"><item><term>""</term><description>The root step</description></item><item><term>"SomeAssembly/SomeFixture/SomeTest"</term><description>The step corresponding to SomeTest</description></item><item><term>"SomeAssembly/SomeFixture/SomeTest/ChildStep"</term><description>A child step of SomeTest</description></item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestStepInfo.IsDynamic">
      <summary>
        <para> Returns true if the test step is dynamic. A dynamic test step is one whose execution is governed by parameters that are not known a priori. </para>
        <para> For example, a primary test step is generally not dynamic because its existence usually only depends on statically known information derived from the test model. However, a child test step created at runtime by a data binding process might be considered dynamic if the data items that were used may change between test runs even when the static structure of the test code remains the same. So a test step that uses random data items or that owes its existence to processes that are not entirely under the control of the test framework should be flagged as dynamic. </para>
        <para> It can be useful to distinguish between static and dynamic test steps when correlating results across test runs. Dynamic test steps are more likely to change in dramatic ways between test runs than static test steps. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestStepInfo.IsPrimary">
      <summary>
        <para> Returns true if the test step is the top node of a hierarchy of test steps that are all associated with the same test. In the case where a single test step is associated with a test, then it is the primary test step. There may be multiple primary test steps of the same test if they are not directly related by ancestry (ie. one does not contain the other). </para>
        <para> A non-primary test step is known as a derived test step. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestStepInfo.IsTestCase">
      <summary>Returns true if the test step represents a distinct test case. A test case is typically a leaf of the test step hierarchy.</summary>
    </member>
    <member name="T:Gallio.Model.TestOutcome">
      <summary>
        <para> Describes the outcome of a test. </para>
        <para> An outcome consists of two parts. First, a required <see cref="P:Gallio.Model.TestOutcome.Status" /> that describes whether test passed, failed or was inconclusive. Second, an optional <see cref="P:Gallio.Model.TestOutcome.Category" /> that enables different outcomes with the same status to be distinguished. The category also provides an opportunity to extend the definition of a test outcome to include custom semantic details. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Canceled">
      <summary>Gets a standard outcome for a test that has an inconclusive outcome because it was canceled.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Category">
      <summary>
        <para> Gets the test outcome category, or null if none. Never an empty string. </para>
        <para> The category, when provided, provides additional information to describe what happened to result in this particular outcome. </para>
        <para> Examples: "ignored", "skipped", "pending", "canceled", "aborted", "timeout". </para>
        <para> Naming guidelines: <list type="bullet"><item>A category should be a single lower-case word.</item><item>It should be a word that can appear on its own or following a number. Consequently, nouns are poor choices because they may need to be pluralized.</item><item>It should not repeat the information already provided by the <see cref="P:Gallio.Model.TestOutcome.Status" />. Consequently, "passed", "failed" and "inconclusive" are poor choices.</item><item>It should be a standard category, if possible.</item><item>It should not be too granular. If too many categories are in common usage, test result summaries by category may become unwieldly.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestOutcome.DisplayName">
      <summary>
        <para> Gets the name of the outcome as it should be displayed. </para>
        <para> The display name is the outcome's <see cref="P:Gallio.Model.TestOutcome.Category" />, if available. Otherwise it is a lowercase rendition of the outcome's <see cref="P:Gallio.Model.TestOutcome.Status" />. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Error">
      <summary>Gets a standard outcome for a test that failed due to an error.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Explicit">
      <summary>Gets a standard outcome for a test that did not run because it must be selected explicitly. The test may be particularly expensive or require manual supervision by an operator.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Failed">
      <summary>Gets a standard outcome for a test that failed.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Ignored">
      <summary>Gets a standard outcome for a test that did not run because the user is choosing to ignore it. Perhaps the test is broken or non-functional.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Inconclusive">
      <summary>Gets a standard outcome for a test that was inconclusive.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Passed">
      <summary>Gets a standard outcome for a test that passed.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Pending">
      <summary>Gets a standard outcome for a test that did not run because it has unsatisfied prerequisites. The test may depend on functionality that has not yet been implemented or perhaps the test itself has yet to be implemented.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Skipped">
      <summary>Gets a standard outcome for a test that did not run.</summary>
      <value>The outcome</value>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Status">
      <summary>
        <para> Gets the test status. </para>
        <para> The test status describes whether a test passed, failed or produced an inconclusive result. This information may be reported to the user with icons and textual labels to explain the overall significance of the outcome. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.TestOutcome.Timeout">
      <summary>Gets a standard outcome for a test that failed because it ran out of time.</summary>
      <value>The outcome</value>
    </member>
    <member name="M:Gallio.Model.TestOutcome.CombineWith(Gallio.Model.TestOutcome)">
      <summary>If the other outcome is more severe than this one, returns it. Otherwise returns this outcome.</summary>
      <param name="other">The other outcome</param>
      <returns>The combined outcome</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.Equals(Gallio.Model.TestOutcome)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.Generalize">
      <summary>Produces an outcome with the same status but omitting the category information.</summary>
      <returns>The generalized outcome</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
      <summary>Provides the Xml schema for this element.</summary>
      <param name="schemas">The schema set</param>
      <returns>The schema type of the element</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.ToString">
      <summary>Returns the <see cref="P:Gallio.Model.TestOutcome.DisplayName" /> of the outcome.</summary>
      <returns>The display name</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.op_Equality(Gallio.Model.TestOutcome,Gallio.Model.TestOutcome)">
      <summary>Compares two outcomes for equality.</summary>
      <param name="a">The first outcome</param>
      <param name="b">The second outcome</param>
      <returns>True if the outcomes are equal</returns>
    </member>
    <member name="M:Gallio.Model.TestOutcome.op_Inequality(Gallio.Model.TestOutcome,Gallio.Model.TestOutcome)">
      <summary>Compares two outcomes for inequality.</summary>
      <param name="a">The first outcome</param>
      <param name="b">The second outcome</param>
      <returns>True if the outcomes are not equal</returns>
    </member>
    <member name="T:Gallio.Model.ITest">
      <summary>
        <para> A test object represents a parameterized test case or test container. The test parameters are used as placeholders for data-binding during test execution. A single test can produce multiple steps (<seealso cref="T:Gallio.Model.ITestStep" />) at runtime. </para>
        <para> A <see cref="T:Gallio.Model.ITest" /> can be thought of as a declarative artifact that describes about what a test "looks like" from the outside based on available reflective metadata. A <see cref="T:Gallio.Model.ITestStep" /> is then the runtime counterpart of a <see cref="T:Gallio.Model.ITest" nolink="true" /> that is created to describe different parameter bindigns or other characteristics of a test's structure that become manifest only at runtime. </para>
        <para> A test may depend on one or more other tests. When a test fails, the tests that depend on it are also automatically considered failures. Moreover, the test harness ensures that a test will only run once all of its dependencies have completed execution successfully. A run-time error will occur when the system detects the presence of circular test dependencies or attempts to execute a test concurrently with its dependencies. </para>
        <para> A test contain child tests. The children of a test are executed in dependency order within the scope of the parent test. Thus the parent test may setup/teardown the execution environment used to execute its children. Tests that belong to different subtrees are executed in relative isolation within the common environment established by their common parent. </para>
        <para> The object model distinguishes between tests that represent individual test cases and other test containers. Test containers are skipped if they do not contain any test cases or if none of their test cases have been selected for execution. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITest.Children">
      <summary>Gets a read-only list of the children of this test.</summary>
    </member>
    <member name="P:Gallio.Model.ITest.Dependencies">
      <summary>Gets a read-only list of the dependencies of this test.</summary>
    </member>
    <member name="P:Gallio.Model.ITest.FullName">
      <summary>
        <para> Gets the full name of the test. The full name is derived by concatenating the <see cref="P:Gallio.Model.ITest.FullName" /> of the <see cref="P:Gallio.Model.ITest.Parent" /> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.ITestComponent.Name" /> of this test. </para>
        <para> The full name of the root test is empty. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITest.IsTestCase">
      <summary>Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only.</summary>
    </member>
    <member name="P:Gallio.Model.ITest.LocalId">
      <summary>
        <para> Gets a locally unique identifier for this test that satisfies the following conditions: </para>
        <list type="bullet">
          <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
          <item>The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects.</item>
          <item>The identifier is non-null.</item>
        </list>
        <para> The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> and an ordering condition among siblings to guarantee uniqueness. </para>
      </summary>
      <value>The locally unique identifier</value>
    </member>
    <member name="P:Gallio.Model.ITest.Order">
      <summary>
        <para> Gets or sets a number that defines an ordering for the test with respect to its siblings. </para>
        <para> Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. </para>
      </summary>
      <value>The test execution order with respect to siblings, initially zero.</value>
    </member>
    <member name="P:Gallio.Model.ITest.Parameters">
      <summary>Gets a read-only list of the parameters of this test. Each parameter must have a unique name. The order in which the parameters appear is not significant.</summary>
    </member>
    <member name="P:Gallio.Model.ITest.Parent">
      <summary>Gets or sets the parent of this test, or null if this is the root test.</summary>
    </member>
    <member name="P:Gallio.Model.ITest.TestControllerFactory">
      <summary>Gets a <see cref="T:Gallio.Model.Execution.ITestController" /><see cref="T:Gallio.Func`1" /> to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller.</summary>
      <value>The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above)</value>
    </member>
    <member name="M:Gallio.Model.ITest.AddChild(Gallio.Model.ITest)">
      <summary>Adds a child test and sets its <see cref="P:Gallio.Model.ITest.Parent" /> property.</summary>
      <param name="test">The test to add as a child</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="test" /> is already the child of some other test</exception>
    </member>
    <member name="M:Gallio.Model.ITest.AddDependency(Gallio.Model.ITest)">
      <summary>Adds a test dependency.</summary>
      <param name="test">The test to add as a dependency</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.ITest.AddParameter(Gallio.Model.ITestParameter)">
      <summary>Adds a test parameter and sets its <see cref="P:Gallio.Model.ITestParameter.Owner" /> property.</summary>
      <param name="parameter">The test parameter to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="parameter" /> is already owned by some other test</exception>
    </member>
    <member name="M:Gallio.Model.ITest.GetUniqueLocalIdForChild(System.String)">
      <summary>Obtains a unique local id for a child of this test.</summary>
      <param name="localIdHint">A suggested id which will be used if no conflicts occur</param>
      <returns>The unique local id to use</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="localIdHint" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.ITestComponent">
      <summary>Common interface for elements in the test object model. All components have a name for presentation, metadata for annotations, and a code reference to its point of definition.</summary>
    </member>
    <member name="P:Gallio.Model.ITestComponent.CodeElement">
      <summary>Gets a reference to the point of definition of this test component in the code, or null if unknown.</summary>
    </member>
    <member name="P:Gallio.Model.ITestComponent.Id">
      <summary>Gets the stable unique identifier of the component.</summary>
    </member>
    <member name="P:Gallio.Model.ITestComponent.Metadata">
      <summary>Gets the metadata of the component.</summary>
    </member>
    <member name="P:Gallio.Model.ITestComponent.Name">
      <summary>Gets the name of the component.</summary>
    </member>
    <member name="T:Gallio.Model.ITestExplorer">
      <summary>
        <para> A test explorer scans a volume of code using reflection to build a partial test tree. The tests constructed in this manner may not be complete or executable but they provide useful insight into the layout of the test suite that can subsequently be used to drive the test runner. </para>
        <para> As a test explorer explores test assemblies and types, it incrementally populates a <see cref="P:Gallio.Model.ITestExplorer.TestModel" /> with its discoveries. The <see cref="P:Gallio.Model.ITestExplorer.TestModel" nolink="true" /> is guaranteed to contain all of the tests explicitly explored, but it may also contain other tests that were discovered by the explorer along the way. For example, a valid implementation of <see cref="T:Gallio.Model.ITestExplorer" /> could implement <see cref="M:Gallio.Model.ITestExplorer.ExploreType(Gallio.Reflection.ITypeInfo,System.Action{Gallio.Model.ITest})" /> by exploring the entire assembly as performed by <see cref="M:Gallio.Model.ITestExplorer.ExploreAssembly(Gallio.Reflection.IAssemblyInfo,System.Action{Gallio.Model.ITest})" />. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITestExplorer.TestModel">
      <summary>Gets the test model that is incrementally populated by the test explorer as it explores tests.</summary>
    </member>
    <member name="M:Gallio.Model.ITestExplorer.ExploreAssembly(Gallio.Reflection.IAssemblyInfo,System.Action{Gallio.Model.ITest})">
      <summary>Explores the tests defined by an assembly and links them into the <see cref="P:Gallio.Model.ITestExplorer.TestModel" />.</summary>
      <param name="assembly">The assembly</param>
      <param name="consumer">An action to perform on each assembly-level test explored, or null if no action is required</param>
    </member>
    <member name="M:Gallio.Model.ITestExplorer.ExploreType(Gallio.Reflection.ITypeInfo,System.Action{Gallio.Model.ITest})">
      <summary>Explores the tests defined by a type and links them into the <see cref="P:Gallio.Model.ITestExplorer.TestModel" />.</summary>
      <param name="type">The type</param>
      <param name="consumer">An action to perform on each type-level test explored, or null if no action is required</param>
    </member>
    <member name="M:Gallio.Model.ITestExplorer.FinishModel">
      <summary>Performs any final actions after exploration has taken place to ensure that we have a complete and internally consistent model.</summary>
    </member>
    <member name="M:Gallio.Model.ITestExplorer.IsTest(Gallio.Reflection.ICodeElementInfo)">
      <summary>Returns true if the code element represents a test.</summary>
      <param name="element">The element</param>
      <returns>True if the element represents a test</returns>
    </member>
    <member name="T:Gallio.Model.ITestFramework">
      <summary>The test framework service provides support for enumerating and executing tests that belong to some test framework. A new third party test framework may be supported by defining and registering a suitable implementation of this interface.</summary>
    </member>
    <member name="P:Gallio.Model.ITestFramework.Id">
      <summary>Gets the unique id of the test framework.</summary>
    </member>
    <member name="P:Gallio.Model.ITestFramework.Name">
      <summary>Gets the name of the test framework.</summary>
    </member>
    <member name="M:Gallio.Model.ITestFramework.ConfigureTestDomain(Gallio.Model.TestDomainSetup)">
      <summary>Applies additional contributions to a test domain, if desired.</summary>
      <param name="testDomainSetup">The test domain setup to modify</param>
    </member>
    <member name="M:Gallio.Model.ITestFramework.CreateTestExplorer(Gallio.Model.TestModel)">
      <summary>Creates a test explorer for this test framework.</summary>
      <param name="testModel">The test model to populate incrementally as tests are discovered</param>
      <returns>The test explorer</returns>
    </member>
    <member name="T:Gallio.Model.ITestPackageExplorerFactory">
      <summary>Creates test explorers for packages.</summary>
    </member>
    <member name="M:Gallio.Model.ITestPackageExplorerFactory.CreateTestExplorer(Gallio.Model.TestPackageConfig,Gallio.Reflection.IReflectionPolicy)">
      <summary>Creates a test explorer with the specified reflection policy.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="reflectionPolicy">The reflection policy</param>
      <returns>The test explorer</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackageConfig" /> or <paramref name="reflectionPolicy" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.ITestParameter">
      <summary>
        <para> A test parameter describes a formal parameter of a <see cref="T:Gallio.Model.ITest" /> to which a value may be bound and used during test execution. </para>
        <para> The <see cref="P:Gallio.Model.ITestComponent.Name" /> property of a test parameter should be unique among the set parameters belonging to its <see cref="P:Gallio.Model.ITestParameter.Owner" /> to ensure that it can be differentiated from others. However, this constraint is not enforced. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITestParameter.Owner">
      <summary>Gets or sets the test that owns this parameter, or null if this parameter does not yet have an owner.</summary>
    </member>
    <member name="T:Gallio.Model.ITestStep">
      <summary>
        <para> A test step is a delimited region of a test defined at run-time. Each test that is executed consists of at least one step: the "primary" step. During execution, each test may spawn additional nested steps that may run in parallel or in series with one another as required. </para>
        <para> A test step may be used to describe a particular instance of a data driven test. It can also be used to generate a completely dynamic hierarchy at runtime that mirrors and extends the static test hierarchy with new information derived from the actual execution of the test. </para>
        <para> Each step has its own execution log and test result (pass/fail/inconclusive). Therefore a multi-step test may possess multiple execution logs and test results. This is deliberate. Think of a <see cref="T:Gallio.Model.ITest" /> as being the declarative component of a test that specifies which test method to invoke and its arguments. An <see cref="T:Gallio.Model.ITestStep" /> is the runtime counterpart of the <see cref="T:Gallio.Model.ITest" nolink="true" /> that captures output and control flow information about part or all of the test. </para>
        <para> A test step also has metadata that can be update at run-time to carry additional declarative information about the step. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITestStep.FullName">
      <summary>
        <para> Gets the full name of the step. </para>
        <para> The full name is derived by concatenating the <see cref="P:Gallio.Model.ITestStep.FullName" /> of the <see cref="P:Gallio.Model.ITestStep.Parent" /> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.ITestComponent.Name" /> of this test step. </para>
        <para> The full name of the root test step is empty. </para>
        <para> Examples: <list type="bullet"><item><term>""</term><description>The root step</description></item><item><term>"SomeAssembly/SomeFixture/SomeTest"</term><description>The step corresponding to SomeTest</description></item><item><term>"SomeAssembly/SomeFixture/SomeTest/ChildStep"</term><description>A child step of SomeTest</description></item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITestStep.IsDynamic">
      <summary>
        <para> Returns true if the test step is dynamic. A dynamic test step is one whose execution is governed by parameters that are not known a priori. </para>
        <para> For example, a primary test step is generally not dynamic because its existence usually only depends on statically known information derived from the test model. However, a child test step created at runtime by a data binding process might be considered dynamic if the data items that were used may change between test runs even when the static structure of the test code remains the same. So a test step that uses random data items or that owes its existence to processes that are not entirely under the control of the test framework should be flagged as dynamic. </para>
        <para> It can be useful to distinguish between static and dynamic test steps when correlating results across test runs. Dynamic test steps are more likely to change in dramatic ways between test runs than static test steps. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITestStep.IsPrimary">
      <summary>
        <para> Returns true if the test step is the top node of a hierarchy of test steps that are all associated with the same test. In the case where a single test step is associated with a test, then it is the primary test step. There may be multiple primary test steps of the same test if they are not directly related by ancestry (ie. one does not contain the other). </para>
        <para> A non-primary test step is known as a derived test step. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.ITestStep.IsTestCase">
      <summary>Returns true if the test step represents a distinct test case. A test case is typically a leaf of the test step hierarchy.</summary>
    </member>
    <member name="P:Gallio.Model.ITestStep.Parent">
      <summary>Gets the step that contains this one, or null if this instance represents the root step of the test step tree.</summary>
    </member>
    <member name="P:Gallio.Model.ITestStep.Test">
      <summary>Gets the test to which this step belongs.</summary>
    </member>
    <member name="T:Gallio.Model.AnnotationType">
      <summary>Specifies the type of an annotation.</summary>
    </member>
    <member name="F:Gallio.Model.AnnotationType.Info">
      <summary>An informational annotation.</summary>
    </member>
    <member name="F:Gallio.Model.AnnotationType.Warning">
      <summary>A warning annotation.</summary>
    </member>
    <member name="F:Gallio.Model.AnnotationType.Error">
      <summary>An error annotation.</summary>
    </member>
    <member name="T:Gallio.Model.TestStatus">
      <summary>
        <para> Describes whether a test passed, failed, was skipped or was inconclusive. </para>
        <para> The status codes are ranked in order of severity from least to greatest as follows: <see cref="F:Gallio.Model.TestStatus.Passed" />, <see cref="F:Gallio.Model.TestStatus.Skipped" />, <see cref="F:Gallio.Model.TestStatus.Inconclusive" />, <see cref="F:Gallio.Model.TestStatus.Failed" />. </para>
      </summary>
    </member>
    <member name="F:Gallio.Model.TestStatus.Passed">
      <summary>The test passed.</summary>
    </member>
    <member name="F:Gallio.Model.TestStatus.Skipped">
      <summary>The test did not run so nothing is known about its status.</summary>
    </member>
    <member name="F:Gallio.Model.TestStatus.Inconclusive">
      <summary>The test did not run or its result was inconclusive.</summary>
    </member>
    <member name="F:Gallio.Model.TestStatus.Failed">
      <summary>The test failed or encountered an error during execution.</summary>
    </member>
    <member name="T:Gallio.Model.Diagnostics.ExceptionData">
      <summary>Describes an exception in a serializable form. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Diagnostics.ExceptionData.InnerException">
      <summary>Gets the inner exception data, or null if none.</summary>
    </member>
    <member name="P:Gallio.Model.Diagnostics.ExceptionData.Message">
      <summary>Gets the exception message text.</summary>
    </member>
    <member name="P:Gallio.Model.Diagnostics.ExceptionData.StackTrace">
      <summary>Gets the exception stack trace.</summary>
    </member>
    <member name="P:Gallio.Model.Diagnostics.ExceptionData.Type">
      <summary>Gets the exception type full name.</summary>
    </member>
    <member name="M:Gallio.Model.Diagnostics.ExceptionData.ToString">
      <summary>Formats the exception to a string similar to the one that the .Net framework would ordinarily construct.</summary>
      <returns>The formatted exception</returns>
    </member>
    <member name="M:Gallio.Model.Diagnostics.ExceptionData.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the exception in a structured format with markers to distinguish its component elements.</summary>
      <param name="writer">The log stream writer</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Diagnostics.StackTraceData">
      <summary>Describes a stack trace in a serializable form. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Diagnostics.StackTraceData.IsEmpty">
      <summary>Returns true if the stack trace data is empty.</summary>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceData.ToString">
      <summary>Formats the stack trace to a string similar to the one that the .Net framework would ordinarily construct.</summary>
      <returns>The formatted stack trace</returns>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceData.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the stack trace in a structured format with markers to distinguish its component elements.</summary>
      <param name="writer">The log stream writer</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Diagnostics.StackTraceFilter">
      <summary>
        <para> Provides methods for filtering the stack trace for tests. </para>
        <para> The objective of this filtering is to omit frames that are not relevant to the user when reporting test failures. </para>
        <para> Stack trace filtering proceeds as follows: <list type="bullet"><item>Stack frames that have an associated <see cref="T:System.Diagnostics.DebuggerHiddenAttribute" /> or <see cref="T:Gallio.Model.Diagnostics.TestFrameworkInternalAttribute" /> are omitted.</item><item>The stack trace is chopped just above the top-most stack frame with an associated <see cref="T:Gallio.Model.Diagnostics.TestEntryPointAttribute" />.</item></list></para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceFilter.CaptureFilteredStackTrace">
      <summary>Captures a filtered stack trace from the currently executing thread.</summary>
      <returns>The filtered stack trace</returns>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceFilter.FilterException(System.Exception)">
      <summary>Filters the stack trace information in an exception.</summary>
      <param name="exception">The exception</param>
      <returns>The filtered exception data</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceFilter.FilterException(Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Filters the stack trace information about an exception.</summary>
      <param name="exception">The exception data</param>
      <returns>The filtered exception data</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceFilter.FilterStackTrace(System.String)">
      <summary>Filters a stack trace.</summary>
      <param name="stackTrace">The stack trace</param>
      <returns>The filtered stack trace</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stackTrace" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Diagnostics.StackTraceFilter.FilterStackTraceToString(System.Diagnostics.StackTrace)">
      <summary>Filters a stack trace.</summary>
      <param name="stackTrace">The stack trace</param>
      <returns>The filtered stack trace string</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stackTrace" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Diagnostics.TestEntryPointAttribute">
      <summary>
        <para> This attribute is used to mark methods that call into test code. </para>
        <para> The <see cref="T:Gallio.Model.Diagnostics.StackTraceFilter" /> uses this attribute to determine at what point control flow initially transitioned from the test framework into the test. It can then filter out irrelevant frames that lie above the entry point. </para>
        <para> If two entry points are nested within one another in the call stack, then the effect is the same as if the outermost entry point did not appear. This enables test frameworks to support recursion into themselves. </para>This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.Diagnostics.TestFrameworkInternalAttribute">
      <summary>
        <para> This attribute is used to mark methods and types that are internal to the implementation of the test framework. </para>
        <para> The <see cref="T:Gallio.Model.Diagnostics.StackTraceFilter" /> uses this attribute to identify stack frames that may safely be filtered out when describing failures to users. If the stack frame refers to a method with this attribute or declared by a type with this attribute then it is omitted. The attribute also applies to nested types to help cover anonymous delegates as well. </para>This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.Execution.BaseTestController">
      <summary>Base implementation of <see cref="T:Gallio.Model.Execution.ITestController" /> that does nothing. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.BaseTestController.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.BaseTestController.RunTests(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Runs the tests.</summary>
      <param name="rootTestCommand">The root test monitor</param>
      <param name="parentTestStep">The parent test step, or null if starting a root step</param>
      <param name="options">The test execution options</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The combined outcome of the root test command</returns>
    </member>
    <member name="M:Gallio.Model.Execution.BaseTestController.RunTestsImpl(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Implementation of <see cref="M:Gallio.Model.Execution.BaseTestController.RunTests(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> called after argument validation has taken place.</summary>
      <param name="rootTestCommand">The root test command, not null</param>
      <param name="parentTestStep">The parent test step, or null if none</param>
      <param name="options">The test execution options, not null</param>
      <param name="progressMonitor">The progress monitor, not null</param>
      <returns>The combined outcome of the root test command</returns>
    </member>
    <member name="M:Gallio.Model.Execution.BaseTestController.SkipAll(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep)">
      <summary>Recursively generates single test steps for each <see cref="T:Gallio.Model.Execution.ITestCommand" /> and sets the final outcome to <see cref="P:Gallio.Model.TestOutcome.Skipped" />.</summary>
      <param name="rootTestCommand">The root test command</param>
      <param name="parentTestStep">The parent test step</param>
    </member>
    <member name="T:Gallio.Model.Execution.DefaultTestContextTracker">
      <summary>The default context tracker tracks the current context by way of the thread's <see cref="T:System.Threading.ExecutionContext" /> and <see cref="T:System.Runtime.Remoting.Messaging.CallContext" />. The .Net framework ensures that this context information flows across threads during asynchronous callbacks, timer events and thread pool work item execution.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.DefaultTestContextTracker.CurrentContext">
      <summary>
        <para> Gets the context of the current thread, or null if there is no current context. </para>
        <para> A thread's current context is determined in the following manner: <list type="bullet"><item>If the thread's context stack is not empty then the top-most item of the stack is used. <see cref="M:Gallio.Model.Execution.ITestContextTracker.EnterContext(Gallio.Model.Execution.ITestContext)" /> pushed a new item on this stack.</item><item>Otherwise, if the thread has an default context, then it is used. <see cref="M:Gallio.Model.Execution.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Execution.ITestContext)" /> sets the default context for a thread.</item><item>Otherwise, the <see cref="P:Gallio.Model.Execution.ITestContextTracker.GlobalContext" /> is used.</item></list></para>
        <para> Context information may flow across threads by inheritance such that a child thread acquires the context of its parent. However, each thread has its own context stack distinct from that of any other. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.DefaultTestContextTracker.GlobalContext">
      <summary>Gets or the global context of the environment, or null if there is no such context.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.DefaultTestContextTracker.EnterContext(Gallio.Model.Execution.ITestContext)">
      <summary>Enters a context.</summary>
      <param name="context">The context to enter, or null to enter a scope without a context</param>
      <returns>A cookie that can be used to restore the current thread's context to its previous value when disposed</returns>
    </member>
    <member name="M:Gallio.Model.Execution.DefaultTestContextTracker.GetThreadDefaultContext(System.Threading.Thread)">
      <summary>Gets the default context for the specified thread.</summary>
      <param name="thread">The thread</param>
      <returns>The default context of the thread</returns>
    </member>
    <member name="M:Gallio.Model.Execution.DefaultTestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Execution.ITestContext)">
      <summary>Sets the default context for the specified thread.</summary>
      <param name="thread">The thread</param>
      <param name="context">The context to associate with the thread, or null to reset the thread's default context to inherit the <see cref="P:Gallio.Model.Execution.ITestContextTracker.GlobalContext" /> once again</param>
    </member>
    <member name="T:Gallio.Model.Execution.DefaultTestOrderStrategy">
      <summary>
        <para> Defines the test ordering strategy. </para>
        <para> This default strategy first compares test by explicit ordering (using <see cref="P:Gallio.Model.ITest.Order" />) then defines an implicit ordering by name (using <see cref="P:Gallio.Model.ITestComponent.Name" />). </para>This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.Execution.ManagedTestCommand">
      <summary>A <see cref="T:Gallio.Model.Execution.ITestCommand" /> implementation based on a <see cref="T:Gallio.Model.Execution.ITestContextManager" />.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.Children">
      <summary>
        <para> Gets the list of child commands to run within the scope of this command. </para>
        <para> Each child command represents a test that is a child of the test managed by this command. </para>
        <para> The children are listed in an order that is consistent with their dependencies. See class commends for details. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.Dependencies">
      <summary>
        <para> Gets the list of other commands that this command depends upon. </para>
        <para> The dependent commands are guaranteed to have appeared before this command in a pre-order traversal of the command tree. A test command cannot depend on one of its direct ancestors. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.IsExplicit">
      <summary>Returns true if the test was explicitly selected by a filter.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.PreOrderTraversal">
      <summary>Enumerates this command and all of its descendants in pre-order tree traversal.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.RootStepFailureCount">
      <summary>Gets the number of times that a root step of this test has failed.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.Test">
      <summary>Gets the test that is to be executed.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ManagedTestCommand.TestCount">
      <summary>Gets the total number of tests in the command subtree, including itself.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.AddChild(Gallio.Model.Execution.ManagedTestCommand)">
      <summary>Adds a child test command.</summary>
      <param name="child">The child to add</param>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.AddDependency(Gallio.Model.Execution.ManagedTestCommand)">
      <summary>Adds a test command dependency.</summary>
      <param name="dependency">The dependency to add</param>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.AreDependenciesSatisfied">
      <summary>Returns true if all of the dependencies of this test command have been satisfied.</summary>
      <returns>True if the dependencies of this test command have been satisfied</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.ChildrenToArray">
      <summary>Gets the list of children as an array.</summary>
      <returns>The array of children</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.ClearChildren">
      <summary>Clears the children of the command.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.GetAllCommands">
      <summary>Gets a list consisting of this command and all of its descendants as enumerated by pre-order tree traversal.</summary>
      <returns>The list of all command</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.StartPrimaryChildStep(Gallio.Model.ITestStep)">
      <summary>
        <para> Starts the primary step of the test associated with this command as a child of the specified test step and returns its test context. </para>
        <para> This method is equivalent to calling <see cref="M:Gallio.Model.Execution.ITestCommand.StartStep(Gallio.Model.ITestStep)" /> using a default implementation of <see cref="T:Gallio.Model.ITestStep" /> that is initialized using <paramref name="parentTestStep" /> and the metadata from the </para>
      </summary>
      <param name="parentTestStep">The parent test step, or null if none</param>
      <returns>The test context for the new primary test step</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.StartStep(Gallio.Model.ITestStep)">
      <summary>Starts a new step of the test using the specified test step object.</summary>
      <param name="testStep">The test step to start</param>
      <returns>The test context for the test step</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ManagedTestCommand.ToString">
      <summary>Returns a description of the test command for debugging purposes.</summary>
      <returns>A description of the test command</returns>
    </member>
    <member name="T:Gallio.Model.Execution.ObservableTestContextManager">
      <summary>An observable test context manager creates and tracks test contexts that are associated with a <see cref="T:Gallio.Model.Messages.ITestExecutionListener" /> for reporting test events back to the test runner.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ObservableTestContextManager.ContextTracker">
      <summary>Gets the test context tracker.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ObservableTestContextManager.TestExecutionListener">
      <summary>Gets the test listener to which test events are dispatched.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestContextManager.StartStep(Gallio.Model.ITestStep)">
      <summary>Starts a test step and returns its associated test context.</summary>
      <param name="testStep">The test step</param>
      <returns>The test context associated with the test step</returns>
    </member>
    <member name="T:Gallio.Model.Execution.ObservableTestLogWriter">
      <summary>A log writer that sends messages to a <see cref="T:Gallio.Model.Messages.ITestExecutionListener" />.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.AttachImpl(Gallio.Model.Logging.Attachment)">
      <summary>Adds an attachment to the log.</summary>
      <param name="attachment">The attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.CloseImpl">
      <summary>Closes the log.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Model.Logging.Marker)">
      <summary>Begins a marked region in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
      <summary>Begins a section in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="sectionName">The name of the section to begin, never null</param>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.StreamEmbedImpl(System.String,System.String)">
      <summary>Embeds an attachment into a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="attachmentName">The name of the attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.StreamEndImpl(System.String)">
      <summary>Ends the current region started with one of the Begin* methods in a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Execution.ObservableTestLogWriter.StreamWriteImpl(System.String,System.String)">
      <summary>Writes a text string to a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="text">The text to write, never null</param>
    </member>
    <member name="T:Gallio.Model.Execution.RecursiveTestController">
      <summary>A test controller that recursively enters the context of each non master-test found. When a master test is found, instantiates the <see cref="T:Gallio.Model.Execution.ITestController" /> for it and hands control over to it for the subtree of tests rooted at the master test.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.RecursiveTestController.RunTestsImpl(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Implementation of <see cref="M:Gallio.Model.Execution.BaseTestController.RunTests(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> called after argument validation has taken place.</summary>
      <param name="rootTestCommand">The root test command, not null</param>
      <param name="parentTestStep">The parent test step, or null if none</param>
      <param name="options">The test execution options, not null</param>
      <param name="progressMonitor">The progress monitor, not null</param>
      <returns>The combined outcome of the root test command</returns>
    </member>
    <member name="T:Gallio.Model.Execution.StubTestContext">
      <summary>A stub implementation of <see cref="T:Gallio.Model.Execution.ITestContext" /> using a <see cref="T:Gallio.Model.Logging.TextualTestLogWriter" />. Does not fully support nested test steps or other dynamic features.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.AssertCount">
      <summary>Gets the current assertion count.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.Data">
      <summary>Gets the user data collection associated with the context. It may be used to associate arbitrary key/value pairs with the context.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.IsFinished">
      <summary>Returns true if the step associated with the context has finished execution and completed all <see cref="E:Gallio.Model.Execution.ITestContext.Finishing" /> actions.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.LifecyclePhase">
      <summary>Gets or sets the lifecycle phase the context is in.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.LogWriter">
      <summary>
        <para> Gets the log writer for the test executing in this context. </para>
        <para> Each test step gets its own log writer that is distinct from those of other steps. So the log writer returned by this property is particular to the step represented by this test context. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.Outcome">
      <summary>
        <para> Gets the step's outcome or its interim outcome if the test is still running. </para>
        <para> The value of this property is initially <see cref="P:Gallio.Model.TestOutcome.Passed" /> but may change over the course of execution to reflect the anticipated outcome of the test. When the test finishes, its outcome is frozen. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.Parent">
      <summary>Gets the parent context or null if this context has no parent.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.StubTestContext.TestStep">
      <summary>Gets the test step associated with the context.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.StubTestContext.AddAssertCount(System.Int32)">
      <summary>Adds the specified amount to the assert count atomically.</summary>
      <param name="value">The amount to add to the assert count</param>
    </member>
    <member name="M:Gallio.Model.Execution.StubTestContext.AddMetadata(System.String,System.String)">
      <summary>Adds metadata to the step that is running in the context.</summary>
      <param name="metadataKey">The metadata key</param>
      <param name="metadataValue">The metadata value</param>
    </member>
    <member name="M:Gallio.Model.Execution.StubTestContext.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.StubTestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})">
      <summary>Finishes a step and submits its final result.</summary>
      <param name="outcome">The final test outcome</param>
      <param name="actualDuration">The actual duration of the step, if null the step monitor will record the duration as the total amount of time since the step monitor was started</param>
    </member>
    <member name="M:Gallio.Model.Execution.StubTestContext.SetInterimOutcome(Gallio.Model.TestOutcome)">
      <summary>Sets the step's interim <see cref="P:Gallio.Model.Execution.ITestContext.Outcome" />. The interim outcome is used to communicate the anticipated outcome of the step to later phases of execution.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.StubTestContext.StartChildStep(Gallio.Model.ITestStep)">
      <summary>Starts a child step of the test and returns its context.</summary>
      <param name="childStep">The step to start</param>
      <returns>The context of the child step</returns>
    </member>
    <member name="E:Gallio.Model.Execution.StubTestContext.Finishing">
      <summary>
        <para> The <see cref="E:Gallio.Model.Execution.ITestContext.Finishing" /> event is raised when the test step is finishing to perform resource reclamation or other updates. </para>
        <para> Clients may attach handlers to this event to perform cleanup activities and other tasks as needed. If a new event handler is added and the step has already finished, the handler is immediately invoked. </para>
      </summary>
    </member>
    <member name="T:Gallio.Model.Execution.StubTestContextTracker">
      <summary>
        <para> The stub context tracker is a dummy implementation of <see cref="T:Gallio.Model.Execution.ITestContextTracker" /> that is used in situations where the runtime environment has not been initialized. </para>
        <para> A typical use of this stub is to support the use of certain framework methods from clients that are not being executed inside of the Gallio test harness such as when test code is run by third party tools. </para>This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.Execution.TestCommandFactory">
      <summary>Creates test commands. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.TestCommandFactory.BuildCommands(Gallio.Model.TestModel,Gallio.Model.Filters.FilterSet{Gallio.Model.ITest},System.Boolean,Gallio.Model.Execution.ITestContextManager)">
      <summary>Recursively builds a tree of test commands.</summary>
      <param name="testModel">The test model</param>
      <param name="filterSet">The filter set for the test model</param>
      <param name="exactFilter">If true, only the specified tests are included, otherwise children of the selected tests are automatically included</param>
      <param name="contextManager">The test context manager</param>
      <returns>The root test command or null if none of the tests in the subtree including <paramref name="testModel" /> matched the filter</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModel" />, <paramref name="filterSet" /> or <paramref name="contextManager" /> is null</exception>
      <exception cref="T:Gallio.Model.ModelException">Thrown if an invalid test dependency is found</exception>
    </member>
    <member name="T:Gallio.Model.Execution.TestContextTrackerAccessor">
      <summary>Static service locator for <see cref="T:Gallio.Model.Execution.ITestContextTracker" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.TestContextTrackerAccessor.Instance">
      <summary>Gets the global test context tracker singleton.</summary>
    </member>
    <member name="T:Gallio.Model.Execution.TestExecutionOptions">
      <summary>Provides options that control how test execution occurs. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.TestExecutionOptions.ExactFilter">
      <summary>Gets or sets whether the filter exactly specifies all tests to select. If false, then children of the selected tests are also included.</summary>
      <value>Defaults to false.</value>
    </member>
    <member name="P:Gallio.Model.Execution.TestExecutionOptions.FilterSet">
      <summary>Gets or sets the filter set.</summary>
      <value>Defaults to an empty filter set.</value>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Execution.TestExecutionOptions.SkipDynamicTests">
      <summary>
        <para> Gets or sets whether to skip running tests that use dynamic data items. </para>
        <para> This flag can be useful in combination with <see cref="P:Gallio.Model.Execution.TestExecutionOptions.SkipTestExecution" /> to enumerate non-dynamic tests only. </para>
      </summary>
      <value>Defaults to <c>false</c></value>
    </member>
    <member name="P:Gallio.Model.Execution.TestExecutionOptions.SkipTestExecution">
      <summary>
        <para> Gets or sets whether to skip the execution of tests. </para>
        <para> The test runner will go through most of the motions of running tests but will skip the actual execution phase. This option can be used to enumerate data-driven test steps without running them. It can also be used to verify that the execution environment is sane without doing most of the work of running the tests. </para>
      </summary>
      <value>Defaults to <c>false</c></value>
    </member>
    <member name="M:Gallio.Model.Execution.TestExecutionOptions.Copy">
      <summary>Creates a copy of the options.</summary>
      <returns>The copy</returns>
    </member>
    <member name="T:Gallio.Model.Execution.ITestCommand">
      <summary>A test command requests the execution of a tree of <see cref="T:Gallio.Model.ITest" />s. The test command hierarchy mirrors a filtered subset of the test hierarchy.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.Children">
      <summary>
        <para> Gets the list of child commands to run within the scope of this command. </para>
        <para> Each child command represents a test that is a child of the test managed by this command. </para>
        <para> The children are listed in an order that is consistent with their dependencies. See class commends for details. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.Dependencies">
      <summary>
        <para> Gets the list of other commands that this command depends upon. </para>
        <para> The dependent commands are guaranteed to have appeared before this command in a pre-order traversal of the command tree. A test command cannot depend on one of its direct ancestors. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.IsExplicit">
      <summary>Returns true if the test was explicitly selected by a filter.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.PreOrderTraversal">
      <summary>Enumerates this command and all of its descendants in pre-order tree traversal.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.RootStepFailureCount">
      <summary>Gets the number of times that a root step of this test has failed.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.Test">
      <summary>Gets the test that is to be executed.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestCommand.TestCount">
      <summary>Gets the total number of tests in the command subtree, including itself.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ITestCommand.AreDependenciesSatisfied">
      <summary>Returns true if all of the dependencies of this test command have been satisfied.</summary>
      <returns>True if the dependencies of this test command have been satisfied</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ITestCommand.GetAllCommands">
      <summary>Gets a list consisting of this command and all of its descendants as enumerated by pre-order tree traversal.</summary>
      <returns>The list of all command</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ITestCommand.StartPrimaryChildStep(Gallio.Model.ITestStep)">
      <summary>
        <para> Starts the primary step of the test associated with this command as a child of the specified test step and returns its test context. </para>
        <para> This method is equivalent to calling <see cref="M:Gallio.Model.Execution.ITestCommand.StartStep(Gallio.Model.ITestStep)" /> using a default implementation of <see cref="T:Gallio.Model.ITestStep" /> that is initialized using <paramref name="parentTestStep" /> and the metadata from the </para>
      </summary>
      <param name="parentTestStep">The parent test step, or null if none</param>
      <returns>The test context for the new primary test step</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ITestCommand.StartStep(Gallio.Model.ITestStep)">
      <summary>Starts a new step of the test using the specified test step object.</summary>
      <param name="testStep">The test step to start</param>
      <returns>The test context for the test step</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStep" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="testStep" /> does not belong to the test associated with this test command</exception>
    </member>
    <member name="T:Gallio.Model.Execution.ITestContext">
      <summary>
        <para> The context provides information about the environment in which a test is executing. A new context is created each time a test or test step begins execution. </para>
        <para> Contexts are arranged in a hierarchy that corresponds to the order in which the contexts were entered. Thus the context for a test likely has as its parent the context for its containing test fixture. </para>
        <para> Arbitrary user data can be associated with a context. Furthermore, client code may attach <see cref="E:Gallio.Model.Execution.ITestContext.Finishing" /> event handlers to perform resource reclamation or other updates when the test step is finished. </para>
        <para> When the context is disposed, its associated test step is automatically marked as being finished unless <see cref="M:Gallio.Model.Execution.ITestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})" /> was previously called. When this occurs the test step is finished with an outcome of <see cref="P:Gallio.Model.TestOutcome.Error" />. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.AssertCount">
      <summary>Gets the current assertion count.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.Data">
      <summary>Gets the user data collection associated with the context. It may be used to associate arbitrary key/value pairs with the context.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.IsFinished">
      <summary>Returns true if the step associated with the context has finished execution and completed all <see cref="E:Gallio.Model.Execution.ITestContext.Finishing" /> actions.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.LifecyclePhase">
      <summary>Gets or sets the lifecycle phase the context is in.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if attempting to set the phase while the test is not running</exception>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.LogWriter">
      <summary>
        <para> Gets the log writer for the test executing in this context. </para>
        <para> Each test step gets its own log writer that is distinct from those of other steps. So the log writer returned by this property is particular to the step represented by this test context. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.Outcome">
      <summary>
        <para> Gets the step's outcome or its interim outcome if the test is still running. </para>
        <para> The value of this property is initially <see cref="P:Gallio.Model.TestOutcome.Passed" /> but may change over the course of execution to reflect the anticipated outcome of the test. When the test finishes, its outcome is frozen. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.Parent">
      <summary>Gets the parent context or null if this context has no parent.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContext.TestStep">
      <summary>Gets the test step associated with the context.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContext.AddAssertCount(System.Int32)">
      <summary>Adds the specified amount to the assert count atomically.</summary>
      <param name="value">The amount to add to the assert count</param>
      <exception cref="T:System.InvalidOperationException">Thrown if the test is not running</exception>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContext.AddMetadata(System.String,System.String)">
      <summary>Adds metadata to the step that is running in the context.</summary>
      <param name="metadataKey">The metadata key</param>
      <param name="metadataValue">The metadata value</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="metadataKey" /> or <paramref name="metadataValue" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the test is not running</exception>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})">
      <summary>Finishes a step and submits its final result.</summary>
      <param name="outcome">The final test outcome</param>
      <param name="actualDuration">The actual duration of the step, if null the step monitor will record the duration as the total amount of time since the step monitor was started</param>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContext.SetInterimOutcome(Gallio.Model.TestOutcome)">
      <summary>Sets the step's interim <see cref="P:Gallio.Model.Execution.ITestContext.Outcome" />. The interim outcome is used to communicate the anticipated outcome of the step to later phases of execution.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if attempting to set the outcome while the test is not running</exception>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContext.StartChildStep(Gallio.Model.ITestStep)">
      <summary>Starts a child step of the test and returns its context.</summary>
      <param name="childStep">The step to start</param>
      <returns>The context of the child step</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the step has finished</exception>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="childStep" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="childStep" /> is not a child of the this step</exception>
    </member>
    <member name="E:Gallio.Model.Execution.ITestContext.Finishing">
      <summary>
        <para> The <see cref="E:Gallio.Model.Execution.ITestContext.Finishing" /> event is raised when the test step is finishing to perform resource reclamation or other updates. </para>
        <para> Clients may attach handlers to this event to perform cleanup activities and other tasks as needed. If a new event handler is added and the step has already finished, the handler is immediately invoked. </para>
      </summary>
    </member>
    <member name="T:Gallio.Model.Execution.ITestContextManager">
      <summary>A test context manager functions as a factory for <see cref="T:Gallio.Model.Execution.ITestContext" /> objects and tracks them with an <see cref="T:Gallio.Model.Execution.ITestContextTracker" />.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContextManager.ContextTracker">
      <summary>Gets the test context tracker.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContextManager.StartStep(Gallio.Model.ITestStep)">
      <summary>Starts a test step and returns its associated test context.</summary>
      <param name="testStep">The test step</param>
      <returns>The test context associated with the test step</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStep" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Execution.ITestContextTracker">
      <summary>The context tracker tracks the <see cref="T:Gallio.Model.Execution.ITestContext" /> associated with threads.</summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContextTracker.CurrentContext">
      <summary>
        <para> Gets the context of the current thread, or null if there is no current context. </para>
        <para> A thread's current context is determined in the following manner: <list type="bullet"><item>If the thread's context stack is not empty then the top-most item of the stack is used. <see cref="M:Gallio.Model.Execution.ITestContextTracker.EnterContext(Gallio.Model.Execution.ITestContext)" /> pushed a new item on this stack.</item><item>Otherwise, if the thread has an default context, then it is used. <see cref="M:Gallio.Model.Execution.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Execution.ITestContext)" /> sets the default context for a thread.</item><item>Otherwise, the <see cref="P:Gallio.Model.Execution.ITestContextTracker.GlobalContext" /> is used.</item></list></para>
        <para> Context information may flow across threads by inheritance such that a child thread acquires the context of its parent. However, each thread has its own context stack distinct from that of any other. </para>
      </summary>
    </member>
    <member name="P:Gallio.Model.Execution.ITestContextTracker.GlobalContext">
      <summary>Gets or the global context of the environment, or null if there is no such context.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContextTracker.EnterContext(Gallio.Model.Execution.ITestContext)">
      <summary>Enters a context.</summary>
      <param name="context">The context to enter, or null to enter a scope without a context</param>
      <returns>A cookie that can be used to restore the current thread's context to its previous value when disposed</returns>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContextTracker.GetThreadDefaultContext(System.Threading.Thread)">
      <summary>Gets the default context for the specified thread.</summary>
      <param name="thread">The thread</param>
      <returns>The default context of the thread</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Execution.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Execution.ITestContext)">
      <summary>Sets the default context for the specified thread.</summary>
      <param name="thread">The thread</param>
      <param name="context">The context to associate with the thread, or null to reset the thread's default context to inherit the <see cref="P:Gallio.Model.Execution.ITestContextTracker.GlobalContext" /> once again</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Execution.ITestController">
      <summary>A test controller runs a batch of tests.</summary>
    </member>
    <member name="M:Gallio.Model.Execution.ITestController.RunTests(Gallio.Model.Execution.ITestCommand,Gallio.Model.ITestStep,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Runs the tests.</summary>
      <param name="rootTestCommand">The root test monitor</param>
      <param name="parentTestStep">The parent test step, or null if starting a root step</param>
      <param name="options">The test execution options</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The combined outcome of the root test command</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="rootTestCommand" /><paramref name="progressMonitor" />, or <paramref name="options" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Filters.AndFilter`1">
      <summary>A filter combinator that matches a value when all of its constituent filters match the value.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.AndFilter`1.Filters">
      <summary>Gets the filters that must jointly be matched. If the list is empty, the filter matches everything.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.AnyFilter`1">
      <summary>A filter that matches anything and always returns true.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.AssemblyFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> matches the specified assembly name filter.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.EqualityFilter`1">
      <summary>An equality filter compares values for strict equality. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.EqualityFilter`1.Comparand">
      <summary>Gets the value to compare for equality.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.Filter`1">
      <summary>A filter is a serializable predicate. The framework uses filters to select among tests discovered through the process of test enumeration. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Filters.Filter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
      <summary>Accepts a visitor and performs double-dispatch.</summary>
      <param name="visitor">The visitor, never null</param>
    </member>
    <member name="M:Gallio.Model.Filters.Filter`1.IsMatch(`0)">
      <summary>Determines whether the filter matches the value.</summary>
      <param name="value">The value to consider, never null</param>
      <returns>True if the filter matches the value</returns>
    </member>
    <member name="M:Gallio.Model.Filters.Filter`1.ToFilterExpr">
      <summary>Formats the filter to a string suitable for parsing by <see cref="T:Gallio.Model.Filters.FilterParser`1" />.</summary>
      <returns>The formatted filter expression</returns>
    </member>
    <member name="T:Gallio.Model.Filters.FilterFormatter">
      <summary>Formats filters in such manner that they can be reparsed using the <see cref="T:Gallio.Model.Filters.FilterParser`1" />.</summary>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.ToString">
      <summary>Gets the formatted filter contents.</summary>
      <returns>The formatted filter</returns>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitAndFilter``1(Gallio.Model.Filters.AndFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.AndFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitAnyFilter``1(Gallio.Model.Filters.AnyFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.AnyFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitEqualityFilter``1(Gallio.Model.Filters.EqualityFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.EqualityFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitNoneFilter``1(Gallio.Model.Filters.NoneFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.NoneFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitNotFilter``1(Gallio.Model.Filters.NotFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.NotFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitOrFilter``1(Gallio.Model.Filters.OrFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.OrFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitPropertyFilter``1(Gallio.Model.Filters.PropertyFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.PropertyFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.FilterFormatter.VisitRegexFilter(Gallio.Model.Filters.RegexFilter)">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.RegexFilter" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="T:Gallio.Model.Filters.FilterParseException">
      <summary>The type of exception thrown when a filter cannot be parsed.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.FilterParser`1">
      <summary>A filter parser constructs filters from its textual representation as a filter expression.</summary>
    </member>
    <member name="M:Gallio.Model.Filters.FilterParser`1.ParseFilter(System.String)">
      <summary>Creates a filter from its textual representation as a filter expression.</summary>
      <param name="filterExpr">The filter expression</param>
      <returns>The parsed filter</returns>
    </member>
    <member name="M:Gallio.Model.Filters.FilterParser`1.ParseFilterSet(System.String)">
      <summary>Creates a filter set from its textual representation as a filter set expression consisting of inclusion and exclusion rules.</summary>
      <param name="filterSetExpr">The filter set expression</param>
      <returns>The parsed filter set</returns>
    </member>
    <member name="T:Gallio.Model.Filters.FilterRule`1">
      <summary>Specifies an inclusion or exclusion filter rule. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.FilterRule`1.Filter">
      <summary>Gets the filter.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.FilterRule`1.RuleType">
      <summary>Gets the filter rule type: inclusion or exclusion.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.FilterSet`1">
      <summary>A filterset combines zero or more filters as a sequence of inclusion and exclusion rules. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.FilterSet`1.Empty">
      <summary>Returns an empty filter set.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.FilterSet`1.HasInclusionRules">
      <summary>Returns true if the filter set has at least one inclusion rule.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.FilterSet`1.IsEmpty">
      <summary>Returns true if the filter set is empty.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.FilterSet`1.Rules">
      <summary>Gets the read-only list of filter rules.</summary>
    </member>
    <member name="M:Gallio.Model.Filters.FilterSet`1.Evaluate(`0)">
      <summary>Evaluates the rules of this filter set and indicates whether the item is included, excluded or not matched by the list of rules.</summary>
      <param name="item">The item</param>
      <returns>The result</returns>
    </member>
    <member name="M:Gallio.Model.Filters.FilterSet`1.ToFilterSetExpr">
      <summary>Formats the filter set to a string suitable for parsing by <see cref="T:Gallio.Model.Filters.FilterParser`1" />.</summary>
      <returns>The formatted filter set expression</returns>
    </member>
    <member name="M:Gallio.Model.Filters.FilterSet`1.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.Filters.FilterUtils">
      <summary>Provides utilities for manipulating filters. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Filters.FilterUtils.ParseTestFilter(System.String)">
      <summary>Parses a test filter.</summary>
      <param name="filterExpr">The filter expression</param>
      <returns>The parsed filter</returns>
    </member>
    <member name="M:Gallio.Model.Filters.FilterUtils.ParseTestFilterSet(System.String)">
      <summary>Parses a test filter set.</summary>
      <param name="filterExpr">The filter expression</param>
      <returns>The parsed filter set</returns>
    </member>
    <member name="T:Gallio.Model.Filters.IdFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.Id" /> matches the specified id filter.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.MemberFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> matches the specified member name filter. This filter should normally be used together with a <see cref="T:System.Reflection.TypeFilter" /> to ensure the accuracy of the member match.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.MetadataFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.Metadata" /> has a key with a value that matches the value filter.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.ModelComponentFilterFactory`1">
      <summary>Builds filters for <see cref="T:Gallio.Model.ITestComponent" /> objects.</summary>
      <typeparam name="T">The <see cref="T:Gallio.Model.ITestComponent" /> subtype</typeparam>
    </member>
    <member name="M:Gallio.Model.Filters.ModelComponentFilterFactory`1.CreateFilter(System.String,Gallio.Model.Filters.Filter{System.String})">
      <summary>Creates a filter from a specification</summary>
      <param name="key">The filter key that identifies the kind of filter to create</param>
      <param name="valueFilter">The filter to use as a rule for matching values</param>
      <returns>The filter</returns>
    </member>
    <member name="T:Gallio.Model.Filters.NameFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.Name" /> matches the specified name filter.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.NamespaceFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> matches the specified namespace name.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.NoneFilter`1">
      <summary>A filter that matches nothing and always returns false.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.NotFilter`1">
      <summary>A filter combinator that is the negation of another filter.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.NotFilter`1.Filter">
      <summary>Gets the filter to be negated.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.OrFilter`1">
      <summary>A filter combinator that matches a value when at least one of its constituent filters matches the value.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.OrFilter`1.Filters">
      <summary>Gets the filters from which at least one match must be found. If the list is empty, the filter matches everything.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.PropertyFilter`1">
      <summary>Abstract base class for filters that encapsulate a rule for selecting some property of an object to be compared against a string value filter. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.PropertyFilter`1.Key">
      <summary>Gets the key that represents the filtered property.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.PropertyFilter`1.ValueFilter">
      <summary>Gets the string value filter.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.RegexFilter">
      <summary>A regex filter matches strings against a given <see cref="P:Gallio.Model.Filters.RegexFilter.Regex" />. Null string values are converted to empty strings for regex evaluation purposes. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Filters.RegexFilter.Regex">
      <summary>Gets the regular expression for matching strings.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.TypeFilter`1">
      <summary>A filter that matches objects whose <see cref="P:Gallio.Model.ITestComponent.CodeElement" /> matches the specified type name.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.IFilterFactory`1">
      <summary>Creates filters of a given type based on a specification that consists of a filter key and a rule for matching values.</summary>
      <typeparam name="T">The filter type</typeparam>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterFactory`1.CreateFilter(System.String,Gallio.Model.Filters.Filter{System.String})">
      <summary>Creates a filter from a specification</summary>
      <param name="key">The filter key that identifies the kind of filter to create</param>
      <param name="valueFilter">The filter to use as a rule for matching values</param>
      <returns>The filter</returns>
    </member>
    <member name="T:Gallio.Model.Filters.IFilterVisitor">
      <summary>Visits the structure of filters.</summary>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitAndFilter``1(Gallio.Model.Filters.AndFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.AndFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitAnyFilter``1(Gallio.Model.Filters.AnyFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.AnyFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitEqualityFilter``1(Gallio.Model.Filters.EqualityFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.EqualityFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitNoneFilter``1(Gallio.Model.Filters.NoneFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.NoneFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitNotFilter``1(Gallio.Model.Filters.NotFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.NotFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitOrFilter``1(Gallio.Model.Filters.OrFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.OrFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitPropertyFilter``1(Gallio.Model.Filters.PropertyFilter{``0})">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.PropertyFilter`1" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitRegexFilter(Gallio.Model.Filters.RegexFilter)">
      <summary>Visits a <see cref="T:Gallio.Model.Filters.RegexFilter" />.</summary>
      <param name="filter">The filter</param>
    </member>
    <member name="T:Gallio.Model.Filters.FilterRuleType">
      <summary>Specifies whether a filter rule is an inclusion or exclusion rule.</summary>
    </member>
    <member name="F:Gallio.Model.Filters.FilterRuleType.Inclusion">
      <summary>The filter rule is an inclusion rule.</summary>
    </member>
    <member name="F:Gallio.Model.Filters.FilterRuleType.Exclusion">
      <summary>The filter rule is an exclusion rule.</summary>
    </member>
    <member name="T:Gallio.Model.Filters.FilterSetResult">
      <summary>Specifies whether a filter set includes, excludes or does not match a particular item.</summary>
    </member>
    <member name="F:Gallio.Model.Filters.FilterSetResult.Unmatched">
      <summary>The filter set neither includes nor excludes the item.</summary>
    </member>
    <member name="F:Gallio.Model.Filters.FilterSetResult.Include">
      <summary>The filter set includes the item.</summary>
    </member>
    <member name="F:Gallio.Model.Filters.FilterSetResult.Exclude">
      <summary>The filter set excludes the item.</summary>
    </member>
    <member name="T:Gallio.Model.Logging.Attachment">
      <summary>An attachment is an embedded object in an execution log. An attachment must specify a content type (a MIME type), and some contents. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Attachment.ContentType">
      <summary>Gets the content type of the attachment specified as a MIME type, not null. <seealso cref="T:Gallio.Model.Logging.MimeTypes" /> for definitions of common supported MIME types.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Attachment.Name">
      <summary>Gets the name of the attachment, not null.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.CreateHtmlAttachment(System.String,System.String)">
      <summary>Creates an HTML attachment.</summary>
      <param name="name">The attachment name, or null to automatically assign one</param>
      <param name="html">The html string, not null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.CreateImageAttachment(System.String,System.Drawing.Image)">
      <summary>Embeds an image attachment with a mime-type compatible with its internal representation.</summary>
      <param name="name">The attachment name, or null to automatically assign one</param>
      <param name="image">The image to attach</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.CreateObjectAsXmlAttachment(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
      <summary>Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the specified serializer. <seealso cref="T:System.Xml.Serialization.XmlSerializer" /></summary>
      <param name="name">The attachment name, or null to automatically assign one</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <param name="xmlSerializer">The xml serializer to use, or null to use the default based on the object's type</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.CreatePlainTextAttachment(System.String,System.String)">
      <summary>Creates a plain text attachment.</summary>
      <param name="name">The attachment name, or null to automatically assign one</param>
      <param name="text">The text string, not null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.CreateXHtmlAttachment(System.String,System.String)">
      <summary>Creates an XHTML attachment.</summary>
      <param name="name">The attachment name, or null to automatically assign one</param>
      <param name="xhtml">The xhtml string, not null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.CreateXmlAttachment(System.String,System.String)">
      <summary>Creates an XML attachment.</summary>
      <param name="name">The attachment name, or null to automatically assign one</param>
      <param name="xml">The XML string, not null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.FromAttachmentData(Gallio.Model.Logging.AttachmentData)">
      <summary>Recovers the attachment information from serializable attachment data.</summary>
      <param name="data">The attachment data</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="data" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Attachment.ToAttachmentData">
      <summary>Generates serializable attachment data from an attachment.</summary>
      <returns>The attachment data</returns>
    </member>
    <member name="T:Gallio.Model.Logging.AttachmentData">
      <summary>
        <para> An Xml-serializable structure that describes the contents, encoding and disposition of an attachment. </para>
        <para> The contents of the attachment are embedded in the execution log according to their encoding. Text is directly embedded into the Xml whereas binary attachments are base 64 encoded. </para>This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.ContentDisposition">
      <summary>Gets or sets the content disposition of the attachment which indicates how the attachment has been stored.</summary>
      <value>The content disposition, initially <see cref="F:Gallio.Model.Logging.AttachmentContentDisposition.Inline" /></value>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.ContentPath">
      <summary>Gets or sets the path of the attachment contents relative to the directory that contains the Xml serialized report, or null if the content is embedded.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.ContentType">
      <summary>Gets or sets the content type of the attachment as a MIME type, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.Encoding">
      <summary>Gets or sets the encoding of the attachment. This value specifies how the attachment is represented in Xml.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.IsText">
      <summary>Returns true if the attachment is textual, false if it is binary.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.Name">
      <summary>Gets or sets the name of the attachment, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Logging.AttachmentData.SerializedContents">
      <summary>Gets or sets the attachment content serialized as text (including Base64 attachments), possibly null if none.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.AttachmentData.GetBytes">
      <summary>Gets the binary contents of a binary attachment.</summary>
      <returns>The bytes, or null if not available</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the attachment is not binary</exception>
    </member>
    <member name="M:Gallio.Model.Logging.AttachmentData.GetText">
      <summary>Gets the text contents of a text attachment.</summary>
      <returns>The text, or null if not available</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the attachment is not textual</exception>
    </member>
    <member name="M:Gallio.Model.Logging.AttachmentData.LoadContents(System.IO.Stream)">
      <summary>Loads the attachment contents from a stream.</summary>
      <param name="stream">The stream</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream" /> is null</exception>
      <exception cref="T:System.IO.IOException">If the attachment could not be loaded</exception>
    </member>
    <member name="M:Gallio.Model.Logging.AttachmentData.SaveContents(System.IO.Stream,System.Text.Encoding)">
      <summary>Saves the attachment contents to a stream.</summary>
      <param name="stream">The stream</param>
      <param name="encoding">The preferred encoding to use if writing text, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream" /> is null</exception>
      <exception cref="T:System.IO.IOException">If the attachment could not be saved</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the attachment contents are not available</exception>
    </member>
    <member name="T:Gallio.Model.Logging.BinaryAttachment">
      <summary>Represents a binary-encoded attachments. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.BinaryAttachment.Bytes">
      <summary>Gets the binary content of the attachment, not null.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.BinaryAttachment.Equals(Gallio.Model.Logging.BinaryAttachment)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.BinaryAttachment.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.BinaryAttachment.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.BinaryAttachment.ToAttachmentData">
      <summary>Generates serializable attachment data from an attachment.</summary>
      <returns>The attachment data</returns>
    </member>
    <member name="T:Gallio.Model.Logging.FallbackTestLogWriter">
      <summary>A test log writer that falls back to a different test log writer for certain operations when its primary test log writer is closed.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.FallbackTestLogWriter.AttachImpl(Gallio.Model.Logging.Attachment)">
      <summary>Adds an attachment to the log.</summary>
      <param name="attachment">The attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.FallbackTestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Model.Logging.Marker)">
      <summary>Begins a marked region in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Logging.FallbackTestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
      <summary>Begins a section in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="sectionName">The name of the section to begin, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.FallbackTestLogWriter.StreamEmbedImpl(System.String,System.String)">
      <summary>Embeds an attachment into a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="attachmentName">The name of the attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.FallbackTestLogWriter.StreamEndImpl(System.String)">
      <summary>Ends the current region started with one of the Begin* methods in a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Logging.FallbackTestLogWriter.StreamWriteImpl(System.String,System.String)">
      <summary>Writes a text string to a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="text">The text to write, never null</param>
    </member>
    <member name="T:Gallio.Model.Logging.MimeTypes">
      <summary>Defines constants for commonly used mime types. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.Binary">
      <summary>Binary data. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.Css">
      <summary>Cascading Style Sheet. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.Gif">
      <summary>GIF image. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.Html">
      <summary>HTML. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.JavaScript">
      <summary>JavaScript This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.MHtml">
      <summary>MHTML web archive. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.PlainText">
      <summary>Plain text data. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.Png">
      <summary>PNG image. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.XHtml">
      <summary>Well-formed XHTML. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.MimeTypes.Xml">
      <summary>Xml data. This field is constant and read-only.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.MimeTypes.GetMimeTypeByExtension(System.String)">
      <summary>Guesses the mime type given a well-known extension.</summary>
      <param name="extension">The extension</param>
      <returns>The mime type, or null if not known</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extension" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.NullTestLogWriter">
      <summary>A test log writer that does nothing.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.NullTestLogWriter.AttachImpl(Gallio.Model.Logging.Attachment)">
      <summary>Adds an attachment to the log.</summary>
      <param name="attachment">The attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.NullTestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Model.Logging.Marker)">
      <summary>Begins a marked region in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Logging.NullTestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
      <summary>Begins a section in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="sectionName">The name of the section to begin, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.NullTestLogWriter.StreamEmbedImpl(System.String,System.String)">
      <summary>Embeds an attachment into a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="attachmentName">The name of the attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.NullTestLogWriter.StreamEndImpl(System.String)">
      <summary>Ends the current region started with one of the Begin* methods in a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Logging.NullTestLogWriter.StreamWriteImpl(System.String,System.String)">
      <summary>Writes a text string to a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="text">The text to write, never null</param>
    </member>
    <member name="T:Gallio.Model.Logging.StringTestLogWriter">
      <summary>An implementation of <see cref="T:Gallio.Model.Logging.TestLogStreamWriter" /> that writes its output to a string.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StringTestLogWriter.ToString">
      <summary>Gets the formatted log contents as a string.</summary>
      <returns>The contents as a string</returns>
    </member>
    <member name="T:Gallio.Model.Logging.StructuredTestLog">
      <summary>A structured test log is an Xml-serializable in-memory representation of a test log written by a <see cref="T:Gallio.Model.Logging.TestLogWriter" />. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredTestLog.Attachments">
      <summary>Gets the list of attachments, not null.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredTestLog.Streams">
      <summary>Gets the list of streams, not null. Used for Xml-serialization.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLog.GetAttachment(System.String)">
      <summary>Gets an attachment by name.</summary>
      <param name="name">The attachment name</param>
      <returns>The attachment or null if not found</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLog.GetStream(System.String)">
      <summary>Gets a stream by name.</summary>
      <param name="name">The stream name</param>
      <returns>The stream or null if not found</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLog.ToString">
      <summary>Formats the log to a string by concatenating all formatted streams and displaying a "*** Stream Name ***" header for each stream name.</summary>
      <returns>The formatted text</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLog.WriteTo(Gallio.Model.Logging.TestLogWriter)">
      <summary>Writes the contents of the log to a test log writer.</summary>
      <param name="writer">The writer</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.StructuredTestLogStream">
      <summary>
        <para> A structured log stream object represents a recursively structured stream of rich text that supports embedded attachments, nested sections and marked regions. Each part of the text is captured by a tag, some of which are composable and may therefore contain other tags. </para>
        <para> It is effectively an xml-serializable representation of a test log stream written by a <see cref="T:Gallio.Model.Logging.TestLogStreamWriter" />. </para>This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredTestLogStream.Body">
      <summary>Gets or sets the body of the log stream, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredTestLogStream.Name">
      <summary>Gets or sets the name of the log stream, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogStream.ToString">
      <summary>Formats the stream using a <see cref="T:Gallio.Model.Logging.Tags.TagFormatter" />.</summary>
      <returns>The formatted text</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogStream.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the contents of the stream to a test log stream writer.</summary>
      <param name="writer">The writer</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.StructuredTestLogWriter">
      <summary>Writes a <see cref="T:Gallio.Model.Logging.StructuredTestLog" /> in memory.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredTestLogWriter.TestLog">
      <summary>Gets the test log under construction.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.AttachImpl(Gallio.Model.Logging.Attachment)">
      <summary>Adds an attachment to the log.</summary>
      <param name="attachment">The attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.CloseImpl">
      <summary>Closes the log.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.FlushImpl">
      <summary>Flushes the log.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Model.Logging.Marker)">
      <summary>Begins a marked region in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
      <summary>Begins a section in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="sectionName">The name of the section to begin, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.StreamEmbedImpl(System.String,System.String)">
      <summary>Embeds an attachment into a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="attachmentName">The name of the attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.StreamEndImpl(System.String)">
      <summary>Ends the current region started with one of the Begin* methods in a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.StreamFlushImpl(System.String)">
      <summary>Flushes a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.StreamWriteImpl(System.String,System.String)">
      <summary>Writes a text string to a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="text">The text to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTestLogWriter.ToString">
      <summary>Flushes the writer and formats it as a string.</summary>
      <returns>The formatted log as a string</returns>
    </member>
    <member name="T:Gallio.Model.Logging.StructuredText">
      <summary>
        <para> A structured text object contains attachments and formatted text with rich presentation elements. </para>
        <para> Structured text is emitted by a <see cref="T:Gallio.Model.Logging.StructuredTextWriter" />. </para>This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredText.Attachments">
      <summary>Gets the immutable list of attachments.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.StructuredText.BodyTag">
      <summary>Gets a copy of the body tag that described the structured text.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.Equals(Gallio.Model.Logging.StructuredText)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.GetTextLength">
      <summary>Returns the total length of all <see cref="T:Gallio.Model.Logging.Tags.TextTag" />s that appear within the structured text body.</summary>
      <returns>The total text length</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.ToString">
      <summary>Formats the structured text to a string, discarding unrepresentable formatting details.</summary>
      <returns>The structured text as a string</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.TruncatedWriteTo(Gallio.Model.Logging.TestLogStreamWriter,System.Int32)">
      <summary>Writes the structured text to a test log stream writer and truncates its text to a particular maximum length, omitting all subsequent contents.</summary>
      <param name="writer">The writer</param>
      <param name="maxLength">The maximum length of text to write</param>
      <returns>True if truncation occurred</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxLength" /> is negative</exception>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredText.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the structured text to a test log stream writer.</summary>
      <param name="writer">The writer</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.StructuredTextWriter">
      <summary>Writes log information in a structured manner so as to produce a <see cref="T:Gallio.Model.Logging.StructuredText" /> or <see cref="T:System.String" />.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTextWriter.ToString">
      <summary>Returns the structured text formatted as a string.</summary>
      <returns>The structured text</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTextWriter.ToStructuredText">
      <summary>Gets the structured text produced so far.</summary>
      <returns>The structured text</returns>
    </member>
    <member name="M:Gallio.Model.Logging.StructuredTextWriter.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the object to a test log stream.</summary>
      <param name="writer">The test log stream</param>
    </member>
    <member name="T:Gallio.Model.Logging.TestLogStreamLogger">
      <summary>A <see cref="T:Gallio.Runtime.Logging.ILogger" /> implementation that logs messages to the specified <see cref="T:Gallio.Model.Logging.TestLogStreamWriter" />. This can be used to write log messages to the test execution log. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.Logging.TestLogStreamNames">
      <summary>Common test log stream names. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.ConsoleError">
      <summary>The name of the built-in log stream where the <see cref="P:System.Console.Error" /> stream from the test is recorded. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.ConsoleInput">
      <summary>The name of the built-in log stream where the <see cref="P:System.Console.In" /> stream for the test is recorded. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.ConsoleOutput">
      <summary>The name of the built-in log stream where the <see cref="P:System.Console.Out" /> stream from the test is recorded. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.DebugTrace">
      <summary>The name of the built-in log stream log stream where diagnostic <see cref="T:System.Diagnostics.Debug" /> and <see cref="T:System.Diagnostics.Trace" /> information is recorded. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.Default">
      <summary>The name of the built-in log stream where additional log output is recorded. In new test frameworks, this stream should be used instead of the console output and error streams for logging test output. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.Failures">
      <summary>The name of the built-in log stream where assertion failures, exceptions and other failure data are recorded. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.TestLogStreamNames.Warnings">
      <summary>The name of the built-in log stream where warnings are recorded. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Model.Logging.TestLogStreamWriter">
      <summary>A log stream writer provides methods for writing rich structured text with embedded attachments, nested sections and hidden semantic markers to a particular stream within a log writer.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogStreamWriter.Container">
      <summary>Gets the containing log writer.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogStreamWriter.Encoding">
      <summary>When overridden in a derived class, returns the <see cref="T:System.Text.Encoding" /> in which the output is written.</summary>
      <value>The Encoding in which the output is written.</value>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogStreamWriter.NewLine">
      <summary>Gets or sets the line terminator string used by the current TextWriter.</summary>
      <value>The line terminator string for the current TextWriter.</value>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogStreamWriter.StreamName">
      <summary>Gets the name of the log stream being written.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.BeginMarker(Gallio.Model.Logging.Marker)">
      <summary>
        <para> Begins a marked region. Maybe be nested. </para>
        <para> A marker is a hidden tag that labels its contents with a semantic class. It is roughly equivalent in operation to an HTML "span" tag. Various tools may inspect the markers and modify the presentation accordingly. </para>
      </summary>
      <param name="marker">The marker</param>
      <returns>A Disposable object that calls <see cref="M:Gallio.Model.Logging.TestLogStreamWriter.End" /> when disposed. This is a convenience for use with the C# "using" statement.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.BeginSection(System.String)">
      <summary>
        <para> Begins a section with the specified name. Maybe be nested. </para>
        <para> A section groups together related content in the test log to make it easier to distinguish. The section name is used as a heading. </para>
      </summary>
      <param name="sectionName">The name of the section</param>
      <returns>A Disposable object that calls <see cref="M:Gallio.Model.Logging.TestLogStreamWriter.End" /> when disposed. This is a convenience for use with the C# "using" statement.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sectionName" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Dispose(System.Boolean)">
      <summary>This method does not make sense for a log stream writer because a stream cannot be closed independently of its containing log.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Embed(Gallio.Model.Logging.Attachment)">
      <summary>Embeds an attachment.</summary>
      <param name="attachment">The attachment to embed</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedExisting(System.String)">
      <summary>Embeds another copy of an existing attachment. This method can be used to repeatedly embed an existing attachment at multiple points in multiple streams without needing to keep the <see cref="T:Gallio.Model.Logging.Attachment" /> instance itself around. This can help to reduce memory footprint since the original <see cref="T:Gallio.Model.Logging.Attachment" nolink="true" /> instance can be garbage collected shortly after it is first attached.</summary>
      <param name="attachmentName">The name of the existing attachment to embed</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachmentName" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if no attachment with the specified name has been previously attached</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedHtml(System.String,System.String)">
      <summary>Embeds an HTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Html" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="html">The HTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedImage(System.String,System.Drawing.Image)">
      <summary>Embeds an image attachment with a mime-type compatible with its internal representation.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="image">The image to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedObjectAsXml(System.String,System.Object)">
      <summary>Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the default <see cref="T:System.Xml.Serialization.XmlSerializer" /> for the object's type.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
      <summary>Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the specified <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer" /> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer" nolink="true" /> for the object's type</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedPlainText(System.String,System.String)">
      <summary>Embeds an plain text attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.PlainText" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="text">The text to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedXHtml(System.String,System.String)">
      <summary>Embeds an XHTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.XHtml" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xhtml">The XHTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.EmbedXml(System.String,System.String)">
      <summary>Embeds an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xml">The XML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.End">
      <summary>Ends the region most recently started with one of the Begin* methods.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if there is no current nested region</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Flush">
      <summary>Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Write(System.Char)">
      <summary>Writes a character to the text stream.</summary>
      <param name="value">The character to write to the text stream.</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Write(System.String)">
      <summary>Writes a string to the text stream.</summary>
      <param name="value">The string to write.</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Write(System.Char[],System.Int32,System.Int32)">
      <summary>Writes a subarray of characters to the text stream.</summary>
      <param name="buffer">The character array to write data from.</param>
      <param name="index">Starting index in the buffer.</param>
      <param name="count">The number of characters to write.</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Write(System.Object)">
      <summary>Writes the text representation of an object to the text stream by calling ToString on that object.</summary>
      <param name="value">The object to write.</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.Write(Gallio.Model.Logging.ITestLogStreamWritable)">
      <summary>Writes a test log stream writable object to the stream.</summary>
      <param name="obj">The object to write, or null if none</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteEllipsis">
      <summary>Writes an ellipsis to indicate where content has been elided for brevity. An ellipsis may be used, for example, when printing assertion failures to clearly identify sections where the user is not being presented all of the information because it was too long and had to be truncated.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteException(System.Exception)">
      <summary>Writes an exception.</summary>
      <param name="exception">The exception to write</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteException(System.Exception,System.String)">
      <summary>Writes an exception within its own section.</summary>
      <param name="exception">The exception to write</param>
      <param name="sectionName">The section name, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteException(Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Writes an exception.</summary>
      <param name="exception">The exception data to write</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteException(Gallio.Model.Diagnostics.ExceptionData,System.String)">
      <summary>Writes an exception within its own section which provides additional cues for interpretation.</summary>
      <param name="exception">The exception data to write</param>
      <param name="sectionName">The section name, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteHighlighted(System.String)">
      <summary>Writes highlighted text. Highlights can be used to emphasize important information such differences between similar expected and actual values.</summary>
      <param name="text">The text to write, or null if none</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogStreamWriter.WriteLine(System.Object)">
      <summary>Writes the text representation of an object by calling ToString on this object, followed by a line terminator to the text stream.</summary>
      <param name="value">The object to write. If value is null, only the line termination characters are written.</param>
    </member>
    <member name="T:Gallio.Model.Logging.TestLogWriter">
      <summary>
        <para> A log records the output of a test during its execution including any text that was written to console output streams, exceptions that occurred, and anything else the test writer might want to save. </para>
        <para> A log consists of zero or more log streams that are opened automatically on demand to capture independent sequences of log output. Each stream can further be broken down into possibly nested sections to classify output during different phases of test execution (useful for drilling into complex tests). In addition to text, a log can contain attachments that are either attached at the top level of the log or embedded into log streams. Attachments are typed by mime-type and can contain Text, Xml, Images, Blobs, or any other content. Certain test frameworks may automatically create attachments to gather all manner of diagnostic information over the course of the test. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.ConsoleError">
      <summary>Gets the stream writer for the built-in log stream where the <see cref="P:System.Console.Error" /> stream for the test is recorded.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.ConsoleInput">
      <summary>Gets the stream writer for the built-in log stream where the <see cref="P:System.Console.In" /> stream for the test is recorded.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.ConsoleOutput">
      <summary>Gets the stream writer for the built-in log stream where the <see cref="P:System.Console.Out" /> stream for the test is recorded.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.DebugTrace">
      <summary>Gets the stream writer for the built-in log stream where diagnostic <see cref="T:System.Diagnostics.Debug" /> and <see cref="T:System.Diagnostics.Trace" /> information is recorded.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.Default">
      <summary>Gets the stream writer for the built-in log stream.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.Failures">
      <summary>Gets the stream writer for the built-in log stream where assertion failures, exceptions and other failure data are recorded.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.IsClosed">
      <summary>Returns true if the log writer is closed.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.Item(System.String)">
      <summary>Gets the log stream with the specified name. If the stream does not exist, it is created on demand.</summary>
      <param name="streamName">The name of the log stream</param>
      <value>The log stream</value>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="streamName" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Logging.TestLogWriter.Warnings">
      <summary>Gets the stream writer for the built-in log stream where warnings are recorded.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.Attach(Gallio.Model.Logging.Attachment)">
      <summary>Attaches an attachment to the log.</summary>
      <param name="attachment">The attachment to include</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachHtml(System.String,System.String)">
      <summary>Attaches an HTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Html" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="html">The HTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachImage(System.String,System.Drawing.Image)">
      <summary>Attaches an image attachment with a mime-type compatible with its internal representation.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="image">The image to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachImpl(Gallio.Model.Logging.Attachment)">
      <summary>Adds an attachment to the log.</summary>
      <param name="attachment">The attachment to write, never null</param>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachObjectAsXml(System.String,System.Object)">
      <summary>Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the default <see cref="T:System.Xml.Serialization.XmlSerializer" /> for the object's type.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
      <summary>Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" /> using the specified <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="obj">The object to serialize and embed, must not be null</param>
      <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer" /> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer" nolink="true" /> for the object's type</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachPlainText(System.String,System.String)">
      <summary>Attaches an plain text attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.PlainText" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="text">The text to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachXHtml(System.String,System.String)">
      <summary>Attaches an XHTML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.XHtml" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xhtml">The XHTML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.AttachXml(System.String,System.String)">
      <summary>Attaches an XML attachment with mime-type <see cref="F:Gallio.Model.Logging.MimeTypes.Xml" />.</summary>
      <param name="attachmentName">The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step.</param>
      <param name="xml">The XML to attach</param>
      <returns>The attachment</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment with the same name</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.Close">
      <summary>Closes the log writer.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.CloseImpl">
      <summary>Closes the log.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.Flush">
      <summary>Flushes the log writer.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.FlushImpl">
      <summary>Flushes the log.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.GetStreamImpl(System.String)">
      <summary>Gets a writer for the stream with the specified name.</summary>
      <param name="streamName">The stream name, never null</param>
      <returns>The log stream writer</returns>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Model.Logging.Marker)">
      <summary>Begins a marked region in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
      <summary>Begins a section in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="sectionName">The name of the section to begin, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.StreamEmbedImpl(System.String,System.String)">
      <summary>Embeds an attachment into a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="attachmentName">The name of the attachment to write, never null</param>
      <exception cref="T:System.InvalidOperationException">Thrown if no attachment with the specified name has been previously attached</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.StreamEndImpl(System.String)">
      <summary>Ends the current region started with one of the Begin* methods in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <exception cref="T:System.InvalidOperationException">Thrown if there is no current nested region</exception>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.StreamFlushImpl(System.String)">
      <summary>Flushes a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Logging.TestLogWriter.StreamWriteImpl(System.String,System.String)">
      <summary>Writes a text string to a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="text">The text to write, never null</param>
    </member>
    <member name="T:Gallio.Model.Logging.TextAttachment">
      <summary>Represents a text-encoded attachment. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TextAttachment.Text">
      <summary>Gets the text of the attachment, not null.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TextAttachment.Equals(Gallio.Model.Logging.TextAttachment)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.TextAttachment.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.TextAttachment.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.TextAttachment.ToAttachmentData">
      <summary>Generates serializable attachment data from an attachment.</summary>
      <returns>The attachment data</returns>
    </member>
    <member name="T:Gallio.Model.Logging.TextualTestLogWriter">
      <summary>An implementation of <see cref="T:Gallio.Model.Logging.TestLogWriter" /> that represents the test log as text written to a <see cref="T:System.IO.TextWriter" />.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TextualTestLogWriter.Verbose">
      <summary>Returns true if the verbose print mode is enabled.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.TextualTestLogWriter.Writer">
      <summary>Gets the underlying text writer.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.TextualTestLogWriter.AttachImpl(Gallio.Model.Logging.Attachment)">
      <summary>Adds an attachment to the log.</summary>
      <param name="attachment">The attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.TextualTestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Model.Logging.Marker)">
      <summary>Begins a marked region in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Logging.TextualTestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
      <summary>Begins a section in a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="sectionName">The name of the section to begin, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.TextualTestLogWriter.StreamEmbedImpl(System.String,System.String)">
      <summary>Embeds an attachment into a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="attachmentName">The name of the attachment to write, never null</param>
    </member>
    <member name="M:Gallio.Model.Logging.TextualTestLogWriter.StreamEndImpl(System.String)">
      <summary>Ends the current region started with one of the Begin* methods in a log stream.</summary>
      <param name="streamName">The log stream name</param>
    </member>
    <member name="M:Gallio.Model.Logging.TextualTestLogWriter.StreamWriteImpl(System.String,System.String)">
      <summary>Writes a text string to a log stream.</summary>
      <param name="streamName">The log stream name</param>
      <param name="text">The text to write, never null</param>
    </member>
    <member name="T:Gallio.Model.Logging.Marker">
      <summary>
        <para> A marker is a hidden tag that labels its contents with a semantic class. It is roughly equivalent in operation to an HTML "span" tag. Various tools may inspect the markers and modify the presentation accordingly. </para>
        <para> Several standard marker classes are provided but you may also define your own. </para>
      </summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.AssertionFailureClass">
      <summary>Standard marker class for assertion failures. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.CodeLocationClass">
      <summary>Standard marker class for code location references. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.CodeLocationColumnNumberAttrib">
      <summary>Column attribute for code location references. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.CodeLocationLineNumberAttrib">
      <summary>Line attribute for code location references. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.CodeLocationPathAttrib">
      <summary>Path attribute for code location references. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.DiffAdditionClass">
      <summary>Standard marker class for content that represents added content in a diff. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.DiffChangeClass">
      <summary>Standard marker class for content that represents changed content in a diff. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.DiffDeletionClass">
      <summary>Standard marker class for content that represents deleted content in a diff. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.EllipsisClass">
      <summary>Standard marker class for content that has been elided and may be made available instead as an attribute. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.ExceptionClass">
      <summary>Standard marker class for exceptions including their details. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.ExceptionMessageClass">
      <summary>Standard marker class for exception messages reported as part of exception details. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.ExceptionTypeClass">
      <summary>Standard marker class for exception types reported as part of exception details. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.HighlightClass">
      <summary>Standard marker class for content that should be displayed with a highlight. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.LabelClass">
      <summary>Standard marker class for labels and headings. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.LinkClass">
      <summary>Standard marker class for link to a url. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.LinkUrlAttrib">
      <summary>Url attribute for links. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.MonospaceClass">
      <summary>Standard marker class for fixed width output such as that from a console or structured table. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.Marker.StackTraceClass">
      <summary>Standard marker class for stack traces. This field is constant and read-only.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.AssertionFailure">
      <summary>Standard marker for assertion failures.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Attributes">
      <summary>Gets the marker's attributes which are optional name/value pairs associated with a marker to carry additional semantic content.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Class">
      <summary>Gets the marker class.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.DiffAddition">
      <summary>Standard marker for content that represents added content in a diff.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.DiffChange">
      <summary>Standard marker for content that represents changed content in a diff.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.DiffDeletion">
      <summary>Standard marker for content that represents deleted content in a diff.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Ellipsis">
      <summary>Standard marker for text that is elided and replaced by an ellipsis.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Exception">
      <summary>Standard marker for exceptions including their details.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.ExceptionMessage">
      <summary>Standard marker for exception messages reported as part of exception details.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.ExceptionType">
      <summary>Standard marker for exception types reported as part of exception details.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Highlight">
      <summary>Standard marker for content that should be displayed with a highlight.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Label">
      <summary>Standard marker for labels and headings.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.Monospace">
      <summary>Standard marker for fixed width output such as that from a console or structured table.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Marker.StackTrace">
      <summary>Standard marker for stack traces.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.CodeLocation(Gallio.Reflection.CodeLocation)">
      <summary>Creates a standard marker for a code location.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.Equals(Gallio.Model.Logging.Marker)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.Link(System.String)">
      <summary>Creates a standard marker for a link to a Url.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.ValidateIdentifier(System.String)">
      <summary>Verifies that the parameter is a valid marker class or attribute identifier.</summary>
      <param name="identifier">The identifier</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="identifier" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="identifier" /> is empty or contains characters other than letters, digits and underscores</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Marker.WithAttribute(System.String,System.String)">
      <summary>Creates a copy of the marker with the specified attribute added.</summary>
      <param name="name">The attribute name</param>
      <param name="value">The attribute value</param>
      <returns>The marker copy with the attribute</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> or <paramref name="value" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if the <paramref name="name" /> is not a valid identifier. <seealso cref="M:Gallio.Model.Logging.Marker.ValidateIdentifier(System.String)" /></exception>
    </member>
    <member name="T:Gallio.Model.Logging.ITestLogStreamWritable">
      <summary>Interface implemented by objects that can write themselves to a <see cref="T:Gallio.Model.Logging.TestLogStreamWriter" /></summary>
    </member>
    <member name="M:Gallio.Model.Logging.ITestLogStreamWritable.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the object to a test log stream.</summary>
      <param name="writer">The test log stream</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.AttachmentContentDisposition">
      <summary>Specifies how attachments are stored in Xml.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.AttachmentContentDisposition.Absent">
      <summary>The attachment content is not present.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.AttachmentContentDisposition.Link">
      <summary>The attachment content is saved to a linked file indicated by <see cref="P:Gallio.Model.Logging.AttachmentData.ContentPath" />.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.AttachmentContentDisposition.Inline">
      <summary>The attachment content is included inline as <see cref="P:Gallio.Model.Logging.AttachmentData.SerializedContents" /> with a given <see cref="P:Gallio.Model.Logging.AttachmentData.Encoding" />.</summary>
    </member>
    <member name="T:Gallio.Model.Logging.AttachmentEncoding">
      <summary>Specifies the Xml-encoding of an embedded execution log attachment.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.AttachmentEncoding.Text">
      <summary>The attachment is encoded as a text string.</summary>
    </member>
    <member name="F:Gallio.Model.Logging.AttachmentEncoding.Base64">
      <summary>The attachment is encoded as base 64 text string.</summary>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.BaseTagVisitor">
      <summary>An abstract base class for tag visitors that recursively traverses all tags and does nothing else by default. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BaseTagVisitor.VisitBodyTag(Gallio.Model.Logging.Tags.BodyTag)">
      <summary>Visits a body tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BaseTagVisitor.VisitEmbedTag(Gallio.Model.Logging.Tags.EmbedTag)">
      <summary>Visits an embedded attachment tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BaseTagVisitor.VisitMarkerTag(Gallio.Model.Logging.Tags.MarkerTag)">
      <summary>Visits a marker tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BaseTagVisitor.VisitSectionTag(Gallio.Model.Logging.Tags.SectionTag)">
      <summary>Visits a section tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BaseTagVisitor.VisitTextTag(Gallio.Model.Logging.Tags.TextTag)">
      <summary>Visits a text tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.BodyTag">
      <summary>The top-level container tag of structured text. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BodyTag.Clone">
      <summary>Clones the object.</summary>
      <returns>The cloned object</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BodyTag.Equals(Gallio.Model.Logging.Tags.BodyTag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BodyTag.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.BodyTag.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.ContainerTag">
      <summary>An abstract container tag for representing tags that can contain other tags. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.ContainerTag.Contents">
      <summary>Gets the list of nested contents of this tag.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ContainerTag.AcceptContents(Gallio.Model.Logging.Tags.ITagVisitor)">
      <summary>Invokes the appropriate visitor method each element contained within this tag.</summary>
      <param name="visitor">The visitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="visitor" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ContainerTag.Equals(Gallio.Model.Logging.Tags.ContainerTag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.EmbedTag">
      <summary>An embedded attachment tag. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.EmbedTag.AttachmentName">
      <summary>Gets or sets the name of the referenced attachment to embed, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.EmbedTag.Clone">
      <summary>Clones the object.</summary>
      <returns>The cloned object</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.EmbedTag.Equals(Gallio.Model.Logging.Tags.EmbedTag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.EmbedTag.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.EmbedTag.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.MarkerTag">
      <summary>A marker tag. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.MarkerTag.Attributes">
      <summary>Gets the list of marker attributes.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.MarkerTag.Class">
      <summary>Gets or sets the marker class, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if the <paramref name="value" /> is not a valid identifier. <seealso cref="M:Gallio.Model.Logging.Marker.ValidateIdentifier(System.String)" /></exception>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.MarkerTag.Marker">
      <summary>Gets the marker.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.MarkerTag.Clone">
      <summary>Clones the object.</summary>
      <returns>The cloned object</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.MarkerTag.Equals(Gallio.Model.Logging.Tags.MarkerTag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.MarkerTag.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.MarkerTag.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.MarkerTag.Attribute">
      <summary>Represents a marker attribute. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.MarkerTag.Attribute.Name">
      <summary>Gets or sets the attribute name, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if the <paramref name="value" /> is not a valid identifier. <seealso cref="M:Gallio.Model.Logging.Marker.ValidateIdentifier(System.String)" /></exception>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.MarkerTag.Attribute.Value">
      <summary>Gets or sets the attribute value, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.SectionTag">
      <summary>A section tag. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.SectionTag.Name">
      <summary>Gets or sets the section name, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.SectionTag.Clone">
      <summary>Clones the object.</summary>
      <returns>The cloned object</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.SectionTag.Equals(Gallio.Model.Logging.Tags.SectionTag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.SectionTag.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.SectionTag.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.Tag">
      <summary>An tag represents a portion of the contents of a structured test log stream. Each one can be thought of as a command that will regenerate the structured test log stream when written back out. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.Tag.Accept(Gallio.Model.Logging.Tags.ITagVisitor)">
      <summary>Invokes the appropriate visitor method for this tag type.</summary>
      <param name="visitor">The visitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="visitor" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.Tag.Equals(Gallio.Model.Logging.Tags.Tag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.Tag.ToString">
      <summary>Formats the tag using a <see cref="T:Gallio.Model.Logging.Tags.TagFormatter" />.</summary>
      <returns>The formatted text</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.Tag.WriteTo(Gallio.Model.Logging.TestLogStreamWriter)">
      <summary>Writes the structured text tag to a <see cref="T:Gallio.Model.Logging.TestLogStreamWriter" />.</summary>
      <param name="writer">The structured text writer</param>
      <exception cref="T:System.ArgumentNullException">Throw if <paramref name="writer" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.TagFormatter">
      <summary>
        <para> Formats <see cref="T:Gallio.Model.Logging.Tags.Tag" /> instances to plain text. </para>
        <para> Text tags are written as-is. Sections introduce paragraph breaks with the header written out as the first line. Embedded attachments are described by name. </para>
      </summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.Append(System.String)">
      <summary>Appends text to the buffer including any requested spacing.</summary>
      <param name="text">The text to append</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.RequestMinimumSpacing(System.Int32)">
      <summary>Ensures that the next chunk of text appended is separated by at least the specified number of line breaks.</summary>
      <param name="spacing">The minimum number of line breaks to insert</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.ToString">
      <summary>Gets the formatted text that has been built.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.VisitBodyTag(Gallio.Model.Logging.Tags.BodyTag)">
      <summary>Visits a body tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.VisitEmbedTag(Gallio.Model.Logging.Tags.EmbedTag)">
      <summary>Visits an embedded attachment tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.VisitMarkerTag(Gallio.Model.Logging.Tags.MarkerTag)">
      <summary>Visits a marker tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.VisitSectionTag(Gallio.Model.Logging.Tags.SectionTag)">
      <summary>Visits a section tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TagFormatter.VisitTextTag(Gallio.Model.Logging.Tags.TextTag)">
      <summary>Visits a text tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.TextTag">
      <summary>A text tag, containing text. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Logging.Tags.TextTag.Text">
      <summary>Gets or sets the text within the tag, not null.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TextTag.Clone">
      <summary>Clones the object.</summary>
      <returns>The cloned object</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TextTag.Equals(Gallio.Model.Logging.Tags.TextTag)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TextTag.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TextTag.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.TextTag.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
      <summary>Provides the Xml schema for this element.</summary>
      <param name="schemas">The schema set</param>
      <returns>The schema type of the element</returns>
    </member>
    <member name="T:Gallio.Model.Logging.Tags.ITagVisitor">
      <summary>Visits a <see cref="T:Gallio.Model.Logging.Tags.Tag" />.</summary>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ITagVisitor.VisitBodyTag(Gallio.Model.Logging.Tags.BodyTag)">
      <summary>Visits a body tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ITagVisitor.VisitEmbedTag(Gallio.Model.Logging.Tags.EmbedTag)">
      <summary>Visits an embedded attachment tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ITagVisitor.VisitMarkerTag(Gallio.Model.Logging.Tags.MarkerTag)">
      <summary>Visits a marker tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ITagVisitor.VisitSectionTag(Gallio.Model.Logging.Tags.SectionTag)">
      <summary>Visits a section tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="M:Gallio.Model.Logging.Tags.ITagVisitor.VisitTextTag(Gallio.Model.Logging.Tags.TextTag)">
      <summary>Visits a text tag.</summary>
      <param name="tag">The tag to visit</param>
    </member>
    <member name="T:Gallio.Model.Messages.RemoteTestExecutionListener">
      <summary>Wraps a test execution listener so that it can be accessed remotely.</summary>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepFinished(System.String,Gallio.Model.TestResult)">
      <summary>Notifies the listener that a test step has finished execution.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="result">The test result, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLifecyclePhaseChanged(System.String,System.String)">
      <summary>Notifies the listener that a test step has changed lifecycle phase.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="lifecyclePhase">The lifecycle phase name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLogAttach(System.String,Gallio.Model.Logging.Attachment)">
      <summary>Notifies the listener that an attachment has been added to a test step log.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="attachment">The attachment, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLogStreamBeginMarker(System.String,System.String,Gallio.Model.Logging.Marker)">
      <summary>Notifies the listener that a marker region has been started within a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLogStreamBeginSection(System.String,System.String,System.String)">
      <summary>Notifies the listener that a section region has been started within a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="sectionName">The section name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLogStreamEmbed(System.String,System.String,System.String)">
      <summary>Notifies the listener that an attachment has been embedded into a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="attachmentName">The attachment name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLogStreamEnd(System.String,System.String)">
      <summary>Notifies the listener that a region started with Begin* has finished within a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepLogStreamWrite(System.String,System.String,System.String)">
      <summary>Notifies the listener that text has been written to a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="text">The text, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepMetadataAdded(System.String,System.String,System.String)">
      <summary>Notifies the listener that a test step has dynamically added metadata to itself.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="metadataKey">The metadata key, not null</param>
      <param name="metadataValue">The metadata value, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExecutionListener.NotifyTestStepStarted(Gallio.Model.Serialization.TestStepData)">
      <summary>Notifies the listener that a test step has started execution.</summary>
      <param name="step">Information about the test step that is about to start, not null</param>
    </member>
    <member name="T:Gallio.Model.Messages.RemoteTestExplorationListener">
      <summary>Wraps a test exploration listener so that it can be accessed remotely.</summary>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExplorationListener.NotifyAnnotationAdded(Gallio.Model.Serialization.AnnotationData)">
      <summary>Notifies the listener that an annotation has been added to the test model.</summary>
      <param name="annotation">The annotation that was added</param>
    </member>
    <member name="M:Gallio.Model.Messages.RemoteTestExplorationListener.NotifySubtreeMerged(System.String,Gallio.Model.Serialization.TestData)">
      <summary>Notifies the listener that a subtree of tests has been merged into the test model.</summary>
      <param name="parentTestId">The id of the parent test, or null if adding the root</param>
      <param name="test">The test at the top of the subtree was merged</param>
    </member>
    <member name="T:Gallio.Model.Messages.ITestExecutionListener">
      <summary>A test execution listener observes the progress of test execution as a series of events.</summary>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepFinished(System.String,Gallio.Model.TestResult)">
      <summary>Notifies the listener that a test step has finished execution.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="result">The test result, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLifecyclePhaseChanged(System.String,System.String)">
      <summary>Notifies the listener that a test step has changed lifecycle phase.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="lifecyclePhase">The lifecycle phase name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLogAttach(System.String,Gallio.Model.Logging.Attachment)">
      <summary>Notifies the listener that an attachment has been added to a test step log.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="attachment">The attachment, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLogStreamBeginMarker(System.String,System.String,Gallio.Model.Logging.Marker)">
      <summary>Notifies the listener that a marker region has been started within a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="marker">The marker</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLogStreamBeginSection(System.String,System.String,System.String)">
      <summary>Notifies the listener that a section region has been started within a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="sectionName">The section name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLogStreamEmbed(System.String,System.String,System.String)">
      <summary>Notifies the listener that an attachment has been embedded into a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="attachmentName">The attachment name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLogStreamEnd(System.String,System.String)">
      <summary>Notifies the listener that a region started with Begin* has finished within a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepLogStreamWrite(System.String,System.String,System.String)">
      <summary>Notifies the listener that text has been written to a test step log stream.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="streamName">The stream name, not null</param>
      <param name="text">The text, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepMetadataAdded(System.String,System.String,System.String)">
      <summary>Notifies the listener that a test step has dynamically added metadata to itself.</summary>
      <param name="stepId">The id of the test step, not null</param>
      <param name="metadataKey">The metadata key, not null</param>
      <param name="metadataValue">The metadata value, not null</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExecutionListener.NotifyTestStepStarted(Gallio.Model.Serialization.TestStepData)">
      <summary>Notifies the listener that a test step has started execution.</summary>
      <param name="step">Information about the test step that is about to start, not null</param>
    </member>
    <member name="T:Gallio.Model.Messages.ITestExplorationListener">
      <summary>A test exploration listener observes the progress of test exploration as a series of events.</summary>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExplorationListener.NotifyAnnotationAdded(Gallio.Model.Serialization.AnnotationData)">
      <summary>Notifies the listener that an annotation has been added to the test model.</summary>
      <param name="annotation">The annotation that was added</param>
    </member>
    <member name="M:Gallio.Model.Messages.ITestExplorationListener.NotifySubtreeMerged(System.String,Gallio.Model.Serialization.TestData)">
      <summary>Notifies the listener that a subtree of tests has been merged into the test model.</summary>
      <param name="parentTestId">The id of the parent test, or null if adding the root</param>
      <param name="test">The test at the top of the subtree was merged</param>
    </member>
    <member name="T:Gallio.Model.Serialization.AnnotationData">
      <summary>Describes an annotation in a portable manner for serialization.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.AnnotationData.CodeLocation">
      <summary>Gets or sets the code location associated with the annotation.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.AnnotationData.CodeReference">
      <summary>Gets or sets the code reference associated with the annotation.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.AnnotationData.Details">
      <summary>Gets or sets additional details such as exception text, or null if none.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.AnnotationData.Message">
      <summary>Gets or sets the annotation message.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Serialization.AnnotationData.Type">
      <summary>Gets or sets the annotation type.</summary>
    </member>
    <member name="M:Gallio.Model.Serialization.AnnotationData.Log(Gallio.Runtime.Logging.ILogger,System.Boolean)">
      <summary>Writes the annotation to a logger for presentation.</summary>
      <param name="logger">The logger</param>
      <param name="includePrefix">If true, includes an identifying prefix to describe the annotation type, otherwise we assume that the logger will do its own thing based on the log severity</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Serialization.TestComponentData">
      <summary>Describes a test model component in a portable manner for serialization. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestComponentData.CodeLocation">
      <summary>Gets or sets the code location or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if not available.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestComponentData.CodeReference">
      <summary>Gets or sets the code reference or <see cref="F:Gallio.Reflection.CodeReference.Unknown" /> if not available.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestComponentData.Id">
      <summary>Gets or sets the test component id. (non-null)</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Serialization.TestComponentData.Metadata">
      <summary>Gets or sets the metadata map. (non-null)</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Serialization.TestComponentData.Name">
      <summary>Gets or sets the test component name. (non-null)</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="T:Gallio.Model.Serialization.TestData">
      <summary>Describes a test in a portable manner for serialization. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestData.AllTests">
      <summary>Recursively enumerates this test and all of its descendants.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestData.Children">
      <summary>Gets the mutable list of children.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestData.FullName">
      <summary>Gets or sets the full name of the test.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Serialization.TestData.IsTestCase">
      <summary>Gets or sets whether this node is a test case.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestData.Parameters">
      <summary>Gets the mutable list of parameters.</summary>
    </member>
    <member name="T:Gallio.Model.Serialization.TestModelData">
      <summary>The test model captures the root of the test data tree along with an index by id. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestModelData.AllTests">
      <summary>Recursively enumerates all tests including the root test.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestModelData.Annotations">
      <summary>Gets the mutable list of annotations.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestModelData.RootTest">
      <summary>Gets or sets the root test in the model.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Serialization.TestModelData.GetErrorAnnotationCount">
      <summary>Gets the number of error annotations on the model.</summary>
      <returns>The numer of error annotations present</returns>
    </member>
    <member name="M:Gallio.Model.Serialization.TestModelData.GetTestById(System.String)">
      <summary>Gets a test by its id.</summary>
      <param name="testId">The test id</param>
      <returns>The test, or null if not found</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testId" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Serialization.TestModelData.MergeSubtree(System.String,Gallio.Model.Serialization.TestData)">
      <summary>Merged a subtree of tests into the model.</summary>
      <param name="parentTestId">The id of the parent test, or null if adding the root</param>
      <param name="test">The top test of the subtree to add</param>
      <returns>The merged test, if the test was already present in the tree</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test" /> is null</exception>
    </member>
    <member name="M:Gallio.Model.Serialization.TestModelData.ResetIndex">
      <summary>Resets the test index by id in case the test model has been modified.</summary>
    </member>
    <member name="T:Gallio.Model.Serialization.TestPackageData">
      <summary>Describes a test package in a portable manner for serialization. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestPackageData.Config">
      <summary>Gets or sets the test package configuration.</summary>
    </member>
    <member name="T:Gallio.Model.Serialization.TestParameterData">
      <summary>Describes a test parameter in a portable manner for serialization. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Model.Serialization.TestStepData">
      <summary>Describes a test step in a portable manner for serialization. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestStepData.FullName">
      <summary>Gets or sets the full name of the step.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Model.Serialization.TestStepData.IsDynamic">
      <summary>Gets or sets whether the test step is dynamic.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestStepData.IsPrimary">
      <summary>Gets or sets whether the test step is primary.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestStepData.IsTestCase">
      <summary>Gets or sets whether the test step represents a test case.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestStepData.ParentId">
      <summary>Gets or sets the id of the parent step.</summary>
    </member>
    <member name="P:Gallio.Model.Serialization.TestStepData.TestId">
      <summary>Gets or sets the id of the test to which the step belongs.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="T:Gallio.Reflection.AssemblyUtils">
      <summary>Provides helpers for working with assemblies. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.AssemblyUtils.GetApplicationVersion(System.Reflection.Assembly)">
      <summary>Gets the application version given its primary assembly. Uses the assembly file version if available.</summary>
      <param name="assembly">The assembly</param>
      <returns>The assembly's file version</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.AssemblyUtils.GetAssemblyLocalPath(System.Reflection.Assembly)">
      <summary>Gets the local path of the assembly prior to shadow copying. Returns null if the original location of the assembly is not local.</summary>
      <param name="assembly">The assembly</param>
      <returns>The original non-shadow copied local path of the assembly, or null if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.AssemblyUtils.GetAssemblyLocation(System.Reflection.Assembly)">
      <summary>Gets the location of the assembly, or null if it is dynamic.</summary>
      <param name="assembly">The assembly</param>
      <returns>The assembly location as returned by <see cref="P:System.Reflection.Assembly.Location" /> or null if the assembly is dynamic and does not have a location</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.AssemblyUtils.GetAssemblyNameCulture(System.Reflection.AssemblyName)">
      <summary>Gets the culture component of an assembly name.</summary>
      <param name="assemblyName">The assembly name</param>
      <returns>The culture name</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.AssemblyUtils.GetFriendlyAssemblyCodeBase(System.Reflection.Assembly)">
      <summary>If the assembly codebase is a local file, returns it as a local path. Otherwise, returns the assembly codebase Uri.</summary>
      <param name="assembly">The assembly</param>
      <returns>The assembly's path</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.AssemblyUtils.GetFriendlyAssemblyLocation(System.Reflection.Assembly)">
      <summary>Gets the original local path of the assembly prior to shadow copying, if it is local. Otherwise, returns the shadow-copied assembly location.</summary>
      <param name="assembly">The assembly</param>
      <returns>The local path of the assembly, preferably its original non-shadow copied location, or null if the assembly is dynamic and does not have a location</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="T:Gallio.Reflection.AttributeUtils">
      <summary>Manipulates attributes described by their metadata. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.GetAttribute``1(Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>Gets the attribute of the specified type, or null if none.</summary>
      <typeparam name="T">The attribute type</typeparam>
      <param name="element">The code element</param>
      <param name="inherit">If true, includes inherited attributes</param>
      <returns>The attribute, or null if none</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the code element has multiple attributes of the specified type</exception>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.GetAttribute(Gallio.Reflection.ICodeElementInfo,System.Type,System.Boolean)">
      <summary>Gets the attribute of the specified type, or null if none.</summary>
      <param name="element">The code element</param>
      <param name="attributeType">The attribute type</param>
      <param name="inherit">If true, includes inherited attributes</param>
      <returns>The attribute, or null if none</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if the code element has multiple attributes of the specified type</exception>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.GetAttributes``1(Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>Gets the attributes of the specified type.</summary>
      <typeparam name="T">The attribute type</typeparam>
      <param name="element">The code element</param>
      <param name="inherit">If true, includes inherited attributes</param>
      <returns>The attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.GetAttributes(Gallio.Reflection.ICodeElementInfo,System.Type,System.Boolean)">
      <summary>Gets the attributes of the specified type.</summary>
      <param name="element">The code element</param>
      <param name="attributeType">The attribute type</param>
      <param name="inherit">If true, includes inherited attributes</param>
      <returns>The attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.HasAttribute``1(Gallio.Reflection.ICodeElementInfo,System.Boolean)">
      <summary>Returns true if the code element has an attribute of the specified type.</summary>
      <typeparam name="T">The attribute type</typeparam>
      <param name="element">The code element</param>
      <param name="inherit">If true, includes inherited attributes</param>
      <returns>True if the code element has at least one attribute of the specified type</returns>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.HasAttribute(Gallio.Reflection.ICodeElementInfo,System.Type,System.Boolean)">
      <summary>Returns true if the code element has an attribute of the specified type.</summary>
      <param name="element">The code element</param>
      <param name="attributeType">The attribute type</param>
      <param name="inherit">If true, includes inherited attributes</param>
      <returns>True if the code element has at least one attribute of the specified type</returns>
    </member>
    <member name="M:Gallio.Reflection.AttributeUtils.ResolveAttributes(System.Collections.Generic.IEnumerable{Gallio.Reflection.IAttributeInfo})">
      <summary>Resolves all the attributes.</summary>
      <param name="attributes">The attribute descriptions</param>
      <returns>The resolved attribute instances</returns>
    </member>
    <member name="T:Gallio.Reflection.CodeElementSorter">
      <summary>Sorts code elements in various ways. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.CodeElementSorter.SortMembersByDeclaringType``1(System.Collections.Generic.IEnumerable{``0})">
      <summary>Sorts members such that those declared by supertypes appear before those declared by subtypes.</summary>
      <typeparam name="T">The type of member</typeparam>
      <param name="members">The members to sort</param>
      <returns>The sorted members</returns>
    </member>
    <member name="T:Gallio.Reflection.DeclaringTypeComparer`1">
      <summary>Sorts an members that all belong to the same type such that the members declared by supertypes appear before those declared by subtypes. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Reflection.DeclaringTypeComparer`1.Instance">
      <summary>Gets the singleton instance of the comparer. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Reflection.DeclaringTypeComparer`1.Compare(`0,`0)">
      <summary>Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.</summary>
      <param name="x">The first object to compare.</param>
      <param name="y">The second object to compare.</param>
      <returns>Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y.</returns>
    </member>
    <member name="T:Gallio.Reflection.ReflectionOnlyAssemblyLoader">
      <summary>
        <para> This assembly loader loads assemblies externally for reflection only. </para>
        <para> This implementation ensures that the assembly files do not remain locked on disk and are not cached in memory outside of the scope of the loader. Consequently the Garbage Collector will automatically reclaim the loader and its contents when they become unreferenced. </para>
        <para> In contrast, that of the standard .Net reflection-only load context (<seealso cref="M:System.Reflection.Assembly.ReflectionOnlyLoad(System.String)" />) does not allow assemblies to be reclaimed until the <see cref="T:System.AppDomain" /> is unloaded. </para>
        <para> The loader considers all assemblies in the specified search path as well as any that can be located using the current AppDomain's assembly resolvers. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.ReflectionOnlyAssemblyLoader.ReflectionPolicy">
      <summary>Gets the reflection policy used to load and access the assemblies.</summary>
    </member>
    <member name="M:Gallio.Reflection.ReflectionOnlyAssemblyLoader.AddHintDirectory(System.String)">
      <summary>Adds a hint directory to search for loading assemblies.</summary>
      <param name="path">The search directory to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path" /> is null</exception>
    </member>
    <member name="T:Gallio.Reflection.ReflectionUtils">
      <summary>Provides functions for working with reflection. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.CanGetAndSetNonStatic(Gallio.Reflection.IPropertyInfo)">
      <summary>Determines if the property has public, non-static and non-abstract getter and setter functions.</summary>
      <param name="property">The property</param>
      <returns>True if the property can be get and set</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.CanInstantiate(Gallio.Reflection.ITypeInfo)">
      <summary>Determines if the type can be instantiated using a public constructor.</summary>
      <param name="type">The type</param>
      <returns>True if the type can be instantiated</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.CanInvokeNonStatic(Gallio.Reflection.IMethodInfo)">
      <summary>Determines if the method is public, non-static and is non-abstract so it can be invoked.</summary>
      <param name="method">The method</param>
      <returns>True if the method can be invoked</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.FindAssemblyReference(Gallio.Reflection.IAssemblyInfo,System.String)">
      <summary>Finds the assembly name of the directly referenced assembly with the specified display name.</summary>
      <param name="assembly">The assembly to search</param>
      <param name="displayName">The display name of the referenced assembly to find</param>
      <returns>The referenced assembly name or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetAssembly(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the assembly that declares the code element, or the code element itself if it is an <see cref="T:Gallio.Reflection.IAssemblyInfo" />.</summary>
      <param name="codeElement">The code element, possibly null</param>
      <returns>The assembly, or null if not found</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetDefaultValue(System.Type)">
      <summary>Gets the default value for a type.</summary>
      <param name="type">The type</param>
      <returns>The default value for the type, such as <c>0</c> if the type represents an integer, or <c>null</c> if the type is a reference type or if <paramref name="type" /> was null</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetDefaultValue(System.TypeCode)">
      <summary>Gets the default value of a type with a given type code.</summary>
      <param name="typeCode">The type code</param>
      <returns>The default value of the type associated with the specified type code</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetMember(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the non-type member that declares the code element, or the code element itself if it is an <see cref="T:Gallio.Reflection.IMemberInfo" /> other than a <see cref="T:Gallio.Reflection.ITypeInfo" />.</summary>
      <param name="codeElement">The code element, possibly null</param>
      <returns>The member, or null if not found</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetNamespace(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the namespace that declares the code element, or the code element itself if it is an <see cref="T:Gallio.Reflection.INamespaceInfo" />.</summary>
      <param name="codeElement">The code element, possibly null</param>
      <returns>The namespace, or null if not found</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetParameter(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the parameter that declares the code element, or the code element itself if it is an <see cref="T:Gallio.Reflection.IParameterInfo" />.</summary>
      <param name="codeElement">The code element, possibly null</param>
      <returns>The parameter, or null if not found</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.GetType(Gallio.Reflection.ICodeElementInfo)">
      <summary>Gets the type that declares the code element, or the code element itself if it is an <see cref="T:Gallio.Reflection.ITypeInfo" />.</summary>
      <param name="codeElement">The code element, possibly null</param>
      <returns>The type, or null if not found</returns>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.IsAssignableFrom(System.String,System.Type)">
      <summary>Returns true if the named type is assignable from the specified type.</summary>
      <param name="searchTypeName">The search type</param>
      <param name="candidateType">The candidate type</param>
      <returns>True if the search type is assignable from the candidate type</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="searchTypeName" /> or <paramref name="candidateType" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.ReflectionUtils.IsDerivedFrom(Gallio.Reflection.ITypeInfo,System.String)">
      <summary>Returns true if a type is derived from another type with the specified qualified name.</summary>
      <param name="type">The type to check</param>
      <param name="qualifiedTypeName">The qualified type name</param>
      <returns>True if <paramref name="type" /> is derived from <paramref name="qualifiedTypeName" /></returns>
    </member>
    <member name="T:Gallio.Reflection.ReflectionWrapperResolveException">
      <summary>The type of exception thrown when a reflection wrapper could not be resolved to a native reflection target.</summary>
    </member>
    <member name="T:Gallio.Reflection.Reflector">
      <summary>Wraps reflection types using the reflection adapter interfaces. Also resolves code references. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Reflector.NativeReflectionPolicy">
      <summary>Gets the singleton instance of the native <see cref="T:Gallio.Reflection.IReflectionPolicy" /> based on .Net reflection.</summary>
    </member>
    <member name="M:Gallio.Reflection.Reflector.GetCallingFunction">
      <summary>Creates a code element from the caller of the executing function.</summary>
      <returns>The code reference</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.GetExecutingFunction">
      <summary>Creates a code element from the executing function.</summary>
      <returns>The code reference</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.GetFunctionFromStackFrame(System.Int32)">
      <summary>Creates a code element representing a function from a particular frame on the current stack.</summary>
      <param name="framesToSkip">The number of frames to skip. If this number is 0, the code reference will refer to the direct caller of this method; if it is 1, it will refer to the caller's caller, and so on.</param>
      <returns>The code reference</returns>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="framesToSkip" /> is less than zero</exception>
    </member>
    <member name="M:Gallio.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)">
      <summary>Returns true if the target represents an unresolved member with limited support for reflection.</summary>
      <param name="target">The member, or null if none</param>
      <returns>True if the target is unresolved</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.IsUnresolved(System.Reflection.ParameterInfo)">
      <summary>Returns true if the target represents an unresolved parameter with limited support for reflection.</summary>
      <param name="target">The parameter, or null if none</param>
      <returns>True if the target is unresolved</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Resolve(Gallio.Reflection.CodeReference,System.Boolean)">
      <summary>Resolves the specified <see cref="T:Gallio.Reflection.CodeReference" />.</summary>
      <param name="reference">The code reference</param>
      <param name="throwOnError">If true, throws an exception on error</param>
      <returns>The associated code element, or null if the code reference is of kind <see cref="F:Gallio.Reflection.CodeReferenceKind.Unknown" /></returns>
      <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="throwOnError" /> is true and <paramref name="reference" /> cannot be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.Assembly)">
      <summary>Obtains a reflection wrapper for an assembly.</summary>
      <param name="target">The assembly, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Type)">
      <summary>Obtains a reflection wrapper for a type.</summary>
      <param name="target">The type, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.MemberInfo)">
      <summary>Obtains a reflection wrapper for a member.</summary>
      <param name="target">The member, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.MethodBase)">
      <summary>Obtains a reflection wrapper for a function.</summary>
      <param name="target">The function, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.ConstructorInfo)">
      <summary>Obtains a reflection wrapper for a constructor.</summary>
      <param name="target">The constructor, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.MethodInfo)">
      <summary>Obtains a reflection wrapper for a method.</summary>
      <param name="target">The method, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.PropertyInfo)">
      <summary>Obtains a reflection wrapper for a property.</summary>
      <param name="target">The property, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.FieldInfo)">
      <summary>Obtains a reflection wrapper for a field.</summary>
      <param name="target">The field, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.EventInfo)">
      <summary>Obtains a reflection wrapper for an event.</summary>
      <param name="target">The event, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Reflection.ParameterInfo)">
      <summary>Obtains a reflection wrapper for a parameter.</summary>
      <param name="target">The parameter, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.Wrap(System.Attribute)">
      <summary>Obtains a reflection wrapper for an attribute instance.</summary>
      <param name="target">The attribute, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Reflector.WrapNamespace(System.String)">
      <summary>Obtains a reflection wrapper for a namespace.</summary>
      <param name="name">The namespace name, or null if none</param>
      <returns>The reflection wrapper, or null if none</returns>
    </member>
    <member name="T:Gallio.Reflection.CodeLocation">
      <summary>Specifies the location of a code element as a position within a file.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeLocation.Unknown">
      <summary>Gets an empty code location with a null path and no line or column number information. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeLocation.Column">
      <summary>Gets the column number, or 0 if unknown.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeLocation.Line">
      <summary>Gets the line number, or 0 if unknown.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeLocation.Path">
      <summary>Gets the path or Uri of a resource that contains the code element, such as a source file or assembly, or null if unknown.</summary>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.Equals(Gallio.Reflection.CodeLocation)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>Allows the code location structure to control its own serialization and deserialization.</summary>
      <param name="info">The serialization info to populate with data.</param>
      <param name="context">The destination for this serialization.</param>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
      <summary>Provides the Xml schema for this element.</summary>
      <param name="schemas">The schema set</param>
      <returns>The schema type of the element</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.ToString">
      <summary>Converts the location to a string of the form "path(line,column)", "path(line)" or "path" depending on which components are available.</summary>
      <returns>The code location as a string or "(unknown)" if unknown</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.op_Equality(Gallio.Reflection.CodeLocation,Gallio.Reflection.CodeLocation)">
      <summary>Compares two code locations for equality.</summary>
      <param name="a">The first code location</param>
      <param name="b">The second code location</param>
      <returns>True if the code locations are equal</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeLocation.op_Inequality(Gallio.Reflection.CodeLocation,Gallio.Reflection.CodeLocation)">
      <summary>Compares two code locations for inequality.</summary>
      <param name="a">The first code location</param>
      <param name="b">The second code location</param>
      <returns>True if the code references are not equal</returns>
    </member>
    <member name="T:Gallio.Reflection.CodeReference">
      <summary>A code reference is a pointer into the structure of a .Net program for use in describing the location of a certain code construct to the user. It is typically used to identify the point of definition of a test component.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReference.Unknown">
      <summary>Gets an empty code reference used to indicate that the actual reference is unknown. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeReference.AssemblyName">
      <summary>Gets the assembly name, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeReference.Kind">
      <summary>Gets the kind of code element specified by the code reference.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeReference.MemberName">
      <summary>Gets the member name, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeReference.NamespaceName">
      <summary>Gets the namespace name, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeReference.ParameterName">
      <summary>Gets the parameter name, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.CodeReference.TypeName">
      <summary>Gets the fully-qualified type name, or null if none.</summary>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.CreateFromAssembly(System.Reflection.Assembly)">
      <summary>Creates a code reference from an assembly.</summary>
      <param name="assembly">The assembly</param>
      <returns>The code reference</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.CreateFromMember(System.Reflection.MemberInfo)">
      <summary>Creates a code reference from a member.</summary>
      <param name="member">The member</param>
      <returns>The code reference</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="member" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.CreateFromNamespace(System.String)">
      <summary>Creates a code reference from an namespace name.</summary>
      <param name="namespaceName">The namespace name</param>
      <returns>The code reference</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="namespaceName" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.CreateFromParameter(System.Reflection.ParameterInfo)">
      <summary>Creates a code reference from a method parameter.</summary>
      <param name="parameter">The parameter</param>
      <returns>The code reference</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.CreateFromType(System.Type)">
      <summary>Creates a code reference from a type.</summary>
      <param name="type">The type</param>
      <returns>The code reference</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.Equals(Gallio.Reflection.CodeReference)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
      <summary>Provides the Xml schema for this element.</summary>
      <param name="schemas">The schema set</param>
      <returns>The schema type of the element</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.ToString">
      <summary>Produces a human-readable description of the code reference.</summary>
      <returns>A description of the code reference</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.op_Equality(Gallio.Reflection.CodeReference,Gallio.Reflection.CodeReference)">
      <summary>Compares two code references for equality.</summary>
      <param name="a">The first code reference</param>
      <param name="b">The second code reference</param>
      <returns>True if the code references are equal</returns>
    </member>
    <member name="M:Gallio.Reflection.CodeReference.op_Inequality(Gallio.Reflection.CodeReference,Gallio.Reflection.CodeReference)">
      <summary>Compares two code references for inequality.</summary>
      <param name="a">The first code reference</param>
      <param name="b">The second code reference</param>
      <returns>True if the code references are not equal</returns>
    </member>
    <member name="T:Gallio.Reflection.ConstantValue">
      <summary>Specifies a typed constant value.</summary>
    </member>
    <member name="P:Gallio.Reflection.ConstantValue.IsArray">
      <summary>Returns true if the value is an array.</summary>
    </member>
    <member name="P:Gallio.Reflection.ConstantValue.IsEnum">
      <summary>Returns true if the value is an enum.</summary>
    </member>
    <member name="P:Gallio.Reflection.ConstantValue.IsNative">
      <summary>Returns true if the contents of <see cref="P:Gallio.Reflection.ConstantValue.Value" /> can be interpreted as a native value or false if <see cref="M:Gallio.Reflection.ConstantValue.Resolve(System.Boolean)" /> must be used to resolve the constant to a native value.</summary>
    </member>
    <member name="P:Gallio.Reflection.ConstantValue.IsType">
      <summary>Returns true if the value is a type.</summary>
    </member>
    <member name="P:Gallio.Reflection.ConstantValue.Type">
      <summary>
        <para> Gets the type of the constant. </para>
        <para> The type may be an array type, an enum type, a primitive type, or the <see cref="T:System.Type" /> type. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.ConstantValue.Value">
      <summary>
        <para> Gets the value of the constant. </para>
        <para> If <see cref="P:Gallio.Reflection.ConstantValue.IsNative" /> is true, then this property contains the native value. Otherwise it is represented differently depending upon its type. <list type="bullet"><item>If the constant is a primitive value, then the value will be a primitive value such as an integer, string, float or null.</item><item>If the constant is an enum, then the value will be a primitive value of the underlying type of the enum.</item><item>If the constant is an array, then the value will be an array of <see cref="T:Gallio.Reflection.ConstantValue" /> objects representing the elements of the array.</item><item>If the constant is a type, then the value will be a <see cref="T:Gallio.Reflection.ITypeInfo" />.</item></list></para>
      </summary>
    </member>
    <member name="M:Gallio.Reflection.ConstantValue.FromNative(System.Object)">
      <summary>Creates a constant value that wraps an existing native value.</summary>
      <param name="value">The native value</param>
      <returns>The constant</returns>
    </member>
    <member name="M:Gallio.Reflection.ConstantValue.Resolve(System.Boolean)">
      <summary>Resolves the constant to a native value by replacing type references with actual <see cref="T:System.Type" /> values, arrays of constants with <see cref="T:System.Array" /> values of the appropriate type, and enums with <see cref="T:System.Enum" /> values.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays</param>
      <returns>The native constant value</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IAssemblyInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.Assembly" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IAssemblyInfo.FullName">
      <summary>Gets the full name of the assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.IAssemblyInfo.Path">
      <summary>Gets the codebase of the assembly as a local path if possible or as a Uri otherwise.</summary>
    </member>
    <member name="M:Gallio.Reflection.IAssemblyInfo.GetExportedTypes">
      <summary>Gets the public types exported by the assembly.</summary>
      <returns>The exported types</returns>
    </member>
    <member name="M:Gallio.Reflection.IAssemblyInfo.GetName">
      <summary>Gets the <see cref="T:System.Reflection.AssemblyName" /> of the assembly.</summary>
      <returns>The assembly name</returns>
    </member>
    <member name="M:Gallio.Reflection.IAssemblyInfo.GetReferencedAssemblies">
      <summary>Gets the names of the assemblies referenced by this assembly.</summary>
      <returns>The names of the references assemblies</returns>
    </member>
    <member name="M:Gallio.Reflection.IAssemblyInfo.GetType(System.String)">
      <summary>Gets a public type by name, or null if not found.</summary>
      <param name="typeName">The type name</param>
      <returns>The type</returns>
    </member>
    <member name="M:Gallio.Reflection.IAssemblyInfo.GetTypes">
      <summary>Gets all of the types in an assembly.</summary>
      <returns>The types</returns>
    </member>
    <member name="M:Gallio.Reflection.IAssemblyInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns null</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IAttributeInfo">
      <summary>Provides information about the contents of a custom attribute.</summary>
    </member>
    <member name="P:Gallio.Reflection.IAttributeInfo.Constructor">
      <summary>Gets the constructor used to create the attribute.</summary>
      <exception cref="T:System.NotSupportedException">Thrown if not supported</exception>
    </member>
    <member name="P:Gallio.Reflection.IAttributeInfo.InitializedArgumentValues">
      <summary>Gets the initialized attribute constructor argument values.</summary>
      <exception cref="T:System.NotSupportedException">Thrown if not supported</exception>
    </member>
    <member name="P:Gallio.Reflection.IAttributeInfo.InitializedFieldValues">
      <summary>Gets the initialized attribute field values.</summary>
    </member>
    <member name="P:Gallio.Reflection.IAttributeInfo.InitializedPropertyValues">
      <summary>Gets the initialized attribute property values.</summary>
    </member>
    <member name="P:Gallio.Reflection.IAttributeInfo.Type">
      <summary>Gets the attribute type.</summary>
    </member>
    <member name="M:Gallio.Reflection.IAttributeInfo.GetFieldValue(System.String)">
      <summary>Gets an attribute field value.</summary>
      <param name="name">The field name</param>
      <returns>The value, or a default value of the field's type if the field with the specified name was not initialized by the attribute declaration</returns>
      <exception cref="T:System.ArgumentException">Thrown if there is no writable instance field with the specified name</exception>
    </member>
    <member name="M:Gallio.Reflection.IAttributeInfo.GetPropertyValue(System.String)">
      <summary>Gets an attribute property value.</summary>
      <param name="name">The property name</param>
      <returns>The value, or a default value of the propery's type if the property with the specified name was not initialized by the attribute declaration</returns>
      <exception cref="T:System.ArgumentException">Thrown if there is no writable instance property with the specified name</exception>
    </member>
    <member name="M:Gallio.Reflection.IAttributeInfo.Resolve(System.Boolean)">
      <summary>Gets the attribute as an object.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays though it still may throw an exception if the attribute class cannot be instantiated</param>
      <returns>The attribute</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the attribute could not be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.ICodeElementInfo">
      <summary>
        <para> Represents a structural element of some code base. </para>
        <para> This interface is the base of a hierarchy of abstract reflection objects. Different implementations of these objects may be used to perform reflection over different sources. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.ICodeElementInfo.CodeReference">
      <summary>Gets a <see cref="P:Gallio.Reflection.ICodeElementInfo.CodeReference" /> for this code element.</summary>
      <value>The code reference</value>
    </member>
    <member name="P:Gallio.Reflection.ICodeElementInfo.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.ICodeElementInfo.Name">
      <summary>Gets the name of the code element.</summary>
    </member>
    <member name="M:Gallio.Reflection.ICodeElementInfo.GetAttributeInfos(Gallio.Reflection.ITypeInfo,System.Boolean)">
      <summary>Gets information about the code element's custom attributes of the specified type.</summary>
      <param name="attributeType">The attribute type, or null to return attributes of all types</param>
      <param name="inherit">If true, includes inherited attributes from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider" /> does)</param>
      <returns>The code element's attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.ICodeElementInfo.GetAttributes(Gallio.Reflection.ITypeInfo,System.Boolean)">
      <summary>Gets the code element's custom attributes of the specified type.</summary>
      <param name="attributeType">The attribute type</param>
      <param name="inherit">If true, includes inherited attributes from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider" /> does)</param>
      <returns>The attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.ICodeElementInfo.GetCodeLocation">
      <summary>Gets the location of a resource that contains the declaration of this code element, or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if not available. The location may refer to the code element's source code or to the location of its compiled assembly.</summary>
      <returns>The code location</returns>
    </member>
    <member name="M:Gallio.Reflection.ICodeElementInfo.GetXmlDocumentation">
      <summary>Gets the XML documentation associated with the code element.</summary>
      <returns>The XML documentation or null if none available</returns>
    </member>
    <member name="M:Gallio.Reflection.ICodeElementInfo.HasAttribute(Gallio.Reflection.ITypeInfo,System.Boolean)">
      <summary>Returns true if the code element has a custom attribute of the specified type.</summary>
      <param name="attributeType">The attribute type, or null to search for attributes of all types</param>
      <param name="inherit">If true, includes inherited attributes from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider" /> does)</param>
      <returns>True if the code element has at least one attribute of the specified type</returns>
    </member>
    <member name="T:Gallio.Reflection.IConstructorInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.ConstructorInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="M:Gallio.Reflection.IConstructorInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IEventInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.EventInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IEventInfo.AddMethod">
      <summary>Gets the add method of the event, or null if none.</summary>
      <value>The add method, or null if none</value>
    </member>
    <member name="P:Gallio.Reflection.IEventInfo.EventAttributes">
      <summary>Gets the event attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.IEventInfo.EventHandlerType">
      <summary>Gets the event handler type.</summary>
    </member>
    <member name="P:Gallio.Reflection.IEventInfo.RaiseMethod">
      <summary>Gets the raise method of the event, or null if none.</summary>
      <value>The raise method, or null if none</value>
    </member>
    <member name="P:Gallio.Reflection.IEventInfo.RemoveMethod">
      <summary>Gets the remove method of the event, or null if none.</summary>
      <value>The remove method, or null if none</value>
    </member>
    <member name="M:Gallio.Reflection.IEventInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IFieldInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.FieldInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.FieldAttributes">
      <summary>Gets the field attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsAssembly">
      <summary>Gets a value indicating whether this field has Assembly level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsFamily">
      <summary>Gets a value indicating whether this field has Family level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsFamilyAndAssembly">
      <summary>Gets a value indicating whether this field has FamilyAndAssembly level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsFamilyOrAssembly">
      <summary>Gets a value indicating whether this field has FamilyOrAssembly level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsInitOnly">
      <summary>Returns true if the field is read-only and can only be set from the constructor.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsLiteral">
      <summary>Returns true if the field is a literal set at compile time.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsPrivate">
      <summary>Gets a value indicating whether the field is private.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsPublic">
      <summary>Gets a value indicating whether the field is public.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFieldInfo.IsStatic">
      <summary>Returns true if the field is static.</summary>
    </member>
    <member name="M:Gallio.Reflection.IFieldInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IFunctionInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.MethodBase" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.CallingConvention">
      <summary>Gets the calling conventions for this method.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsAbstract">
      <summary>Returns true if the method is abstract.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsAssembly">
      <summary>Gets a value indicating whether this method can be called by other classes in the same assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsFamily">
      <summary>Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsFamilyAndAssembly">
      <summary>Gets a value indicating whether this method can be called by derived classes if they are in the same assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsFamilyOrAssembly">
      <summary>Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsFinal">
      <summary>Returns true if the method is final.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsHideBySig">
      <summary>Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsPrivate">
      <summary>Gets a value indicating whether this member is private.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsPublic">
      <summary>Gets a value indicating whether this is a public method.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsStatic">
      <summary>Returns true if the method is static.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.IsVirtual">
      <summary>Gets a value indicating whether the method is virtual.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.MethodAttributes">
      <summary>Gets the method attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.IFunctionInfo.Parameters">
      <summary>Gets the parameters of the function.</summary>
      <value>The parameters</value>
    </member>
    <member name="M:Gallio.Reflection.IFunctionInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IGenericParameterInfo">
      <summary>
        <para> A <see cref="T:System.Type" /> reflection wrapper for generic parameters. The parameter is presented as if it were a slot the accepted a value of type <see cref="T:System.Type" nolink="true" />. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IGenericParameterInfo.Constraints">
      <summary>Gets the constraints of the generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.IGenericParameterInfo.DeclaringMethod">
      <summary>Gets the declaring generic method of a generic method parameter or null for a generic type parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.IGenericParameterInfo.GenericParameterAttributes">
      <summary>Gets the generic parameter attributes.</summary>
    </member>
    <member name="T:Gallio.Reflection.IMemberInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.MemberInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IMemberInfo.DeclaringType">
      <summary>
        <para> Gets the declaring type of the member. </para>
        <para> If the member not a type or is a nested type, returns its containing type. If it is a generic parameter, returns the type to which it (or its declaring method) belongs. Otherwise returns null. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IMemberInfo.ReflectedType">
      <summary>
        <para> Gets the reflected type of the member. The reflected type is the type that was used to locate the member. If the member was inherited from a base class, its declaring type will be the base class but its reflected type will be the inherited class from which the member was accessed. </para>
        <para> If the member not a type or is a nested type, returns its reflected containing type. If it is a generic parameter, returns the declaring type to which it (or its declaring method) belongs. Otherwise returns null. </para>
      </summary>
    </member>
    <member name="M:Gallio.Reflection.IMemberInfo.Resolve(System.Boolean)">
      <summary>Gets the member to its underlying native reflection type.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The underlying native reflection type</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IMethodInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.MethodInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.ContainsGenericParameters">
      <summary>Returns true if the method contains unbound generic parameters. If so, the <see cref="P:Gallio.Reflection.IMethodInfo.GenericArguments" /> list will contain one or more <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects.</summary>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.GenericArguments">
      <summary>Gets the generic arguments of the method. The list may contain <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects when no type has yet been bound to a certain generic parameter slots.</summary>
      <value>The generic arguments</value>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.GenericMethodDefinition">
      <summary>Gets the generic method definition of this method, or null if the method is not generic.</summary>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.IsGenericMethod">
      <summary>Returns true if the method is a generic method. If so, the <see cref="P:Gallio.Reflection.IMethodInfo.GenericArguments" /> list will be non-empty.</summary>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.IsGenericMethodDefinition">
      <summary>Returns true if the method is a generic method definition.</summary>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.ReturnParameter">
      <summary>Gets the method return parameter object that contains information about the return value and its attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.IMethodInfo.ReturnType">
      <summary>Gets the method return type.</summary>
    </member>
    <member name="M:Gallio.Reflection.IMethodInfo.MakeGenericMethod(System.Collections.Generic.IList{Gallio.Reflection.ITypeInfo})">
      <summary>Makes a generic method instantiation.</summary>
      <param name="genericArguments">The generic arguments</param>
      <returns>The generic method instantiation</returns>
    </member>
    <member name="M:Gallio.Reflection.IMethodInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:System.NotSupportedException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.INamespaceInfo">
      <summary>
        <para> A namespace reflection wrapper identified by its name. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="T:Gallio.Reflection.IParameterInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.ParameterInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IParameterInfo.IsIn">
      <summary>Gets a value indicating whether this is an input parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.IParameterInfo.IsOptional">
      <summary>Gets a value indicating whether this parameter is optional.</summary>
    </member>
    <member name="P:Gallio.Reflection.IParameterInfo.IsOut">
      <summary>Gets a value indicating whether this is an output parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.IParameterInfo.Member">
      <summary>Gets the member to which the parameter belongs.</summary>
    </member>
    <member name="P:Gallio.Reflection.IParameterInfo.ParameterAttributes">
      <summary>Gets the parameter attributes.</summary>
    </member>
    <member name="M:Gallio.Reflection.IParameterInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IPropertyInfo">
      <summary>
        <para> A <see cref="T:System.Reflection.PropertyInfo" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.IPropertyInfo.CanRead">
      <summary>Returns true if the property can be read.</summary>
    </member>
    <member name="P:Gallio.Reflection.IPropertyInfo.CanWrite">
      <summary>Returns true if the property can be written.</summary>
    </member>
    <member name="P:Gallio.Reflection.IPropertyInfo.GetMethod">
      <summary>Gets the get method of the property, or null if none.</summary>
      <value>The get method, or null if none</value>
    </member>
    <member name="P:Gallio.Reflection.IPropertyInfo.IndexParameters">
      <summary>Gets the list of index parameters for an indexer property, or an empty array if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.IPropertyInfo.PropertyAttributes">
      <summary>Gets the property attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.IPropertyInfo.SetMethod">
      <summary>Gets the set method of the property, or null if none.</summary>
      <value>The set method, or null if none</value>
    </member>
    <member name="M:Gallio.Reflection.IPropertyInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.IReflectionPolicy">
      <summary>A reflection policy provides access to top-level reflection resources such as assemblies.</summary>
    </member>
    <member name="M:Gallio.Reflection.IReflectionPolicy.LoadAssembly(System.Reflection.AssemblyName)">
      <summary>Loads an assembly by name.</summary>
      <param name="assemblyName">The full or partial assembly name of the assembly to load</param>
      <returns>The loaded assembly</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName" /> is null</exception>
      <exception cref="T:System.Exception">Thrown if the assembly could not be loaded for any reason</exception>
    </member>
    <member name="M:Gallio.Reflection.IReflectionPolicy.LoadAssemblyFrom(System.String)">
      <summary>Loads an assembly from a file.</summary>
      <param name="assemblyFile">The assembly file path</param>
      <returns>The loaded assembly</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyFile" /> is null</exception>
      <exception cref="T:System.Exception">Thrown if the assembly could not be loaded for any reason</exception>
    </member>
    <member name="T:Gallio.Reflection.ISlotInfo">
      <summary>A slot represents a field, property or parameter. It is used to simplify the handling of data binding since all three of these types are similar in that they can hold values of some type.</summary>
    </member>
    <member name="P:Gallio.Reflection.ISlotInfo.Position">
      <summary>Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind.</summary>
    </member>
    <member name="P:Gallio.Reflection.ISlotInfo.ValueType">
      <summary>Gets the type of value held in the slot.</summary>
    </member>
    <member name="T:Gallio.Reflection.ITypeInfo">
      <summary>
        <para> A <see cref="T:System.Type" /> reflection wrapper. </para>
        <para> This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. </para>
      </summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.ArrayRank">
      <summary>Gets the rank of the array type.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the type is not an array type</exception>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.Assembly">
      <summary>Gets the assembly in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.AssemblyQualifiedName">
      <summary>Gets the assembly-qualified name of the type, or null if the type is a generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.BaseType">
      <summary>Gets the base type of the type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.ContainsGenericParameters">
      <summary>Returns true if the type contains unbound generic parameters. If so, the <see cref="P:Gallio.Reflection.ITypeInfo.GenericArguments" /> list will contain one or more <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.ElementType">
      <summary>Gets the element type of an array, pointer or byref type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.FullName">
      <summary>Gets the full name of the type, or null if the type is a generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.GenericArguments">
      <summary>Gets the generic arguments of the type. The list may contain <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects when no type has yet been bound to a certain generic parameter slots.</summary>
      <value>The generic arguments, or an empty list if there are none</value>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.GenericTypeDefinition">
      <summary>Gets the generic type definition of this type, or null if the type is not generic.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.Interfaces">
      <summary>Gets all of the type's interfaces.</summary>
      <value>The type's interfaces</value>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsAbstract">
      <summary>Returns true if the type is abstract and must be overridden.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsArray">
      <summary>Returns true if the type represents an array.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsByRef">
      <summary>Returns true if the type represents a type that is passed by reference.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsClass">
      <summary>Returns true if the type is a class.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsEnum">
      <summary>Returns true if the type represents an enumeration.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsGenericParameter">
      <summary>Returns true if the type represents a generic type parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsGenericType">
      <summary>Returns true if the type is a generic type. If so, the <see cref="P:Gallio.Reflection.ITypeInfo.GenericArguments" /> list will be non-empty.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsGenericTypeDefinition">
      <summary>Returns true if the type is a generic type definition.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsInterface">
      <summary>Returns true if the type is an interface.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNested">
      <summary>Returns true if the type is nested.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNestedAssembly">
      <summary>Returns true if the type is nested and is visible only within its own assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNestedFamily">
      <summary>Returns true if the type is nested and visible only within its own family.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNestedFamilyAndAssembly">
      <summary>Returns true if the type is nested and visible only to classes that belong to both its own family and its own assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNestedFamilyOrAssembly">
      <summary>Returns true if the type is nested and visible only to classes that belong to either its own family or to its own assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNestedPrivate">
      <summary>Returns true if the type is nested and declared private.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNestedPublic">
      <summary>Returns true if the type is nested and declared public.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsNotPublic">
      <summary>Returns true if the type is not declared public.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsPointer">
      <summary>Returns true if the type represents a pointer.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsPublic">
      <summary>Returns true if the type is declared public.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsSealed">
      <summary>Returns true if the type is sealed.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.IsValueType">
      <summary>Returns true if the type is a value type.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.Namespace">
      <summary>Gets the namespace in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.NamespaceName">
      <summary>Gets the name of the namespace in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.TypeAttributes">
      <summary>Gets the type attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.ITypeInfo.TypeCode">
      <summary>Gets the type's <see cref="P:Gallio.Reflection.ITypeInfo.TypeCode" />.</summary>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetConstructors(System.Reflection.BindingFlags)">
      <summary>Gets all constructors of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The constructors</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetEvent(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a event by name, or null if not found.</summary>
      <param name="eventName">The event name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The event</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetEvents(System.Reflection.BindingFlags)">
      <summary>Gets all events of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The events</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetField(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a field by name, or null if not found.</summary>
      <param name="fieldName">The field name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The property</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetFields(System.Reflection.BindingFlags)">
      <summary>Gets all fields of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The fields</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetMethod(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a method by name, or null if not found.</summary>
      <param name="methodName">The method name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The method</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetMethods(System.Reflection.BindingFlags)">
      <summary>Gets all methods of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The methods</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetNestedType(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a nested type by name, or null if not found.</summary>
      <param name="nestedTypeName">The nested type name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The nested type</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetNestedTypes(System.Reflection.BindingFlags)">
      <summary>Gets all nested types of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The nested types</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetProperties(System.Reflection.BindingFlags)">
      <summary>Gets all properties of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The properties</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.GetProperty(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a property by name, or null if not found.</summary>
      <param name="propertyName">The property name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The property</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.IsAssignableFrom(Gallio.Reflection.ITypeInfo)">
      <summary>Returns true if variables of this type can be assigned with values of the specified type.</summary>
      <param name="type">The other type, or null if none</param>
      <returns>True if the other type is not null and this type is assignable from the other type</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.IsSubclassOf(Gallio.Reflection.ITypeInfo)">
      <summary>Returns true if this type is a subclass of the specified type.</summary>
      <param name="type">The other type, or null if none</param>
      <returns>True if the other type is not null, this type is a subclass of the other type, and this type not the same as the other type</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.MakeArrayType(System.Int32)">
      <summary>Makes an array type of the specified rank.</summary>
      <param name="arrayRank">The array rank</param>
      <returns>The array type</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.MakeByRefType">
      <summary>Makes a reference type.</summary>
      <returns>The reference type</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.MakeGenericType(System.Collections.Generic.IList{Gallio.Reflection.ITypeInfo})">
      <summary>Makes a generic type instantiation.</summary>
      <param name="genericArguments">The generic arguments</param>
      <returns>The generic type instantiation</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.MakePointerType">
      <summary>Makes a pointer type.</summary>
      <returns>The pointer type</returns>
    </member>
    <member name="M:Gallio.Reflection.ITypeInfo.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.CodeElementKind">
      <summary>Describes the kind of code element represented by a <see cref="T:Gallio.Reflection.ICodeElementInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Assembly">
      <summary>The element is an <see cref="T:Gallio.Reflection.IAssemblyInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Namespace">
      <summary>The element is an <see cref="T:Gallio.Reflection.INamespaceInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Type">
      <summary>The element is an <see cref="T:Gallio.Reflection.ITypeInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Field">
      <summary>The element is an <see cref="T:Gallio.Reflection.IFieldInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Property">
      <summary>The element is an <see cref="T:Gallio.Reflection.IPropertyInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Event">
      <summary>The element is an <see cref="T:Gallio.Reflection.IEventInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Constructor">
      <summary>The element is an <see cref="F:Gallio.Reflection.CodeElementKind.Constructor" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Method">
      <summary>The element is an <see cref="T:Gallio.Reflection.IMethodInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.Parameter">
      <summary>The element is an <see cref="T:Gallio.Reflection.IParameterInfo" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeElementKind.GenericParameter">
      <summary>The element is an <see cref="T:Gallio.Reflection.IGenericParameterInfo" />.</summary>
    </member>
    <member name="T:Gallio.Reflection.CodeReferenceKind">
      <summary>Describes the kind of code element specified by a <see cref="T:Gallio.Reflection.CodeReference" />.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReferenceKind.Unknown">
      <summary>The code reference is unknown.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReferenceKind.Assembly">
      <summary>The code reference specifies an assembly.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReferenceKind.Namespace">
      <summary>The code reference specifies a namespace.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReferenceKind.Type">
      <summary>The code reference specifies a type.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReferenceKind.Member">
      <summary>The code reference specifies a constructor, method, property, field or event.</summary>
    </member>
    <member name="F:Gallio.Reflection.CodeReferenceKind.Parameter">
      <summary>The code reference specifies a parameter of a constructor or method.</summary>
    </member>
    <member name="T:Gallio.Reflection.Impl.BaseReflectionPolicy">
      <summary>A base reflection policy implementation that performs argument validation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.BaseReflectionPolicy.LoadAssembly(System.Reflection.AssemblyName)">
      <summary>Loads an assembly by name.</summary>
      <param name="assemblyName">The full or partial assembly name of the assembly to load</param>
      <returns>The loaded assembly</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.BaseReflectionPolicy.LoadAssemblyFrom(System.String)">
      <summary>Loads an assembly from a file.</summary>
      <param name="assemblyFile">The assembly file path</param>
      <returns>The loaded assembly</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.BaseReflectionPolicy.LoadAssemblyFromImpl(System.String)">
      <summary>Loads an assembly from a file.</summary>
      <param name="assemblyFile">The assembly file path, not null</param>
      <returns>The loaded assembly wrapper</returns>
      <exception cref="T:System.Exception">Any exception may be thrown if the loading fails</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.BaseReflectionPolicy.LoadAssemblyImpl(System.Reflection.AssemblyName)">
      <summary>Loads an assembly.</summary>
      <param name="assemblyName">The assembly name, not null</param>
      <returns>The loaded assembly wrapper</returns>
      <exception cref="T:System.Exception">Any exception may be thrown if the loading fails</exception>
    </member>
    <member name="T:Gallio.Reflection.Impl.ComDebugSymbolResolver">
      <summary>Resolves debug symbols via the CorMetaDataDispenser COM class.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.ComDebugSymbolResolver.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.ComDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
      <summary>Gets the location of a source file that contains the declaration of a method, or null if not available.</summary>
      <param name="assemblyPath">The path of the assembly that contains the method</param>
      <param name="methodToken">The method token</param>
      <returns>The source code location, or null if unknown</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.DebugSymbolUtils">
      <summary>Helpers for working with <see cref="T:Gallio.Reflection.Impl.IDebugSymbolResolver" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.DebugSymbolUtils.Resolver">
      <summary>Gets the singleton debug symbol resolver used by these utilities.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.DebugSymbolUtils.CreateResolver(System.Boolean)">
      <summary>Creates a new debug symbol resolver appropriate for this platform.</summary>
      <param name="avoidLocks">If true, avoids taking a lock on the PDB files but may use more memory or storage</param>
      <returns>The debug symbol resolver</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.DebugSymbolUtils.GetSourceLocation(System.Type)">
      <summary>Gets the location of a source file that contains the declaration of a type, or unknown if not available.</summary>
      <param name="type">The type</param>
      <returns>The code location, or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if unknown</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.DebugSymbolUtils.GetSourceLocation(System.Reflection.MethodBase)">
      <summary>Gets the location of a source file that contains the declaration of a method, or unknown if not available.</summary>
      <param name="method">The method</param>
      <returns>The source location, or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if unknown</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method" /> is null</exception>
    </member>
    <member name="T:Gallio.Reflection.Impl.DefaultXmlDocumentationResolver">
      <summary>The default XML documentation resolver reads XML documentation files on demand when available and caches them in memory for subsequent accesses. It takes care of mapping member names to XML documentation conventions when asked to resolve the documentation for a member.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.DefaultXmlDocumentationResolver.GetXmlDocumentation(System.String,System.String)">
      <summary>Gets the XML documentation for a member in an assembly.</summary>
      <param name="assemblyPath">The assembly path</param>
      <param name="memberId">The XML documentation id of the member</param>
      <returns>The XML documentation for the member, or null if none available</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.MonoDebugSymbolResolver">
      <summary>Implementation of a debug symbol resolver for Mono.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.MonoDebugSymbolResolver.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.MonoDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
      <summary>Gets the location of a source file that contains the declaration of a method, or null if not available.</summary>
      <param name="assemblyPath">The path of the assembly that contains the method</param>
      <param name="methodToken">The method token</param>
      <returns>The source code location, or null if unknown</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.ReflectorAttributeUtils">
      <summary>
        <para> Provides helpers for enumerating attributes taking into account the attribute inheritance structure. </para>
        <para> This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorAttributeUtils.CreateAttribute(Gallio.Reflection.IAttributeInfo,System.Boolean)">
      <summary>Creates an attribute instance from an <see cref="T:Gallio.Reflection.IAttributeInfo" />.</summary>
      <param name="attribute">The attribute description</param>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays</param>
      <returns>The attribute instance</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the attribute could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorAttributeUtils.IsAttributeField(Gallio.Reflection.IFieldInfo)">
      <summary>Returns true if the field is assignable as a named attribute parameter.</summary>
      <param name="field">The field</param>
      <returns>True if the field is assignable</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorAttributeUtils.IsAttributeProperty(Gallio.Reflection.IPropertyInfo)">
      <summary>Returns true if the property is assignable as a named attribute parameter.</summary>
      <param name="property">The property</param>
      <returns>True if the property is assignable</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.ReflectorFlagsUtils">
      <summary>
        <para> Provides helpers for manipulating reflection flags enumerations. </para>
        <para> This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. </para>
      </summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.TypeAttributes@,System.Reflection.TypeAttributes,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.MethodAttributes@,System.Reflection.MethodAttributes,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.FieldAttributes@,System.Reflection.FieldAttributes,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.PropertyAttributes@,System.Reflection.PropertyAttributes,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.ParameterAttributes@,System.Reflection.ParameterAttributes,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.GenericParameterAttributes@,System.Reflection.GenericParameterAttributes,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.CallingConventions@,System.Reflection.CallingConventions,System.Boolean)">
      <summary>Adds <paramref name="flagToAdd" /> to the <paramref name="flags" /> enumeration if <paramref name="condition" /> is true.</summary>
      <param name="flags">The flags enumeration to update</param>
      <param name="flagToAdd">The flag to add if <paramref name="condition" /> is true</param>
      <param name="condition">The condition to check</param>
    </member>
    <member name="T:Gallio.Reflection.Impl.ReflectorResolveUtils">
      <summary>
        <para> Provides helpers for resolving abstract reflection objects to obtain native ones based on the structural properties of the reflected code elements. </para>
        <para> This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. </para>
      </summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveAssembly(Gallio.Reflection.IAssemblyInfo,System.Boolean,System.Boolean)">
      <summary>Resolves a reflected assembly to its native <see cref="T:System.Reflection.Assembly" /> object.</summary>
      <param name="assembly">The reflected assembly</param>
      <param name="fallbackOnPartialName">If true, allows the assembly to be resolved by partial name if no match could be found by fullname</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns null</param>
      <returns>The resolved <see cref="T:System.Reflection.Assembly" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="assembly" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveConstructor(Gallio.Reflection.IConstructorInfo,System.Boolean)">
      <summary>Resolves a reflected constructor to its native <see cref="T:System.Reflection.ConstructorInfo" /> object.</summary>
      <param name="constructor">The reflected constructor</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedConstructorInfo" /></param>
      <returns>The resolved <see cref="T:System.Reflection.ConstructorInfo" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="constructor" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="constructor" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveEvent(Gallio.Reflection.IEventInfo,System.Boolean)">
      <summary>Resolves a reflected event to its native <see cref="T:System.Reflection.EventInfo" /> object.</summary>
      <param name="event">The reflected event</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedEventInfo" /></param>
      <returns>The resolved <see cref="T:System.Reflection.EventInfo" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="event" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="event" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveField(Gallio.Reflection.IFieldInfo,System.Boolean)">
      <summary>Resolves a reflected field to its native <see cref="T:System.Reflection.FieldInfo" /> object.</summary>
      <param name="field">The reflected type</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedFieldInfo" /></param>
      <returns>The resolved <see cref="T:System.Reflection.FieldInfo" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="field" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="field" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveMethod(Gallio.Reflection.IMethodInfo,System.Boolean)">
      <summary>Resolves a reflected method to its native <see cref="T:System.Reflection.MethodInfo" /> object.</summary>
      <param name="method">The reflected method</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedMethodInfo" /></param>
      <returns>The resolved <see cref="T:System.Reflection.MethodInfo" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="method" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveParameter(Gallio.Reflection.IParameterInfo,System.Boolean)">
      <summary>Resolves a reflected parameter to its native <see cref="T:System.Reflection.ParameterInfo" /> object.</summary>
      <param name="parameter">The reflected parameter</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedParameterInfo" /></param>
      <returns>The resolved <see cref="T:System.Reflection.ParameterInfo" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="parameter" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveProperty(Gallio.Reflection.IPropertyInfo,System.Boolean)">
      <summary>Resolves a reflected property to its native <see cref="T:System.Reflection.PropertyInfo" /> object.</summary>
      <param name="property">The reflected property</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedPropertyInfo" /></param>
      <returns>The resolved <see cref="T:System.Reflection.PropertyInfo" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="property" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="property" /> could not be resolved</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveType(Gallio.Reflection.Impl.IResolvableTypeInfo,System.Reflection.MethodInfo,System.Boolean)">
      <summary>Resolves a reflected type to its native <see cref="T:System.Type" /> object.</summary>
      <param name="type">The reflected type</param>
      <param name="methodContext">The method that is currently in scope, or null if none. This parameter is used when resolving types that are part of the signature of a generic method so that generic method arguments can be handled correctly.</param>
      <param name="throwOnError">If true, throws an exception if resolution fails, otherwise returns an <see cref="T:Gallio.Reflection.Impl.UnresolvedType" /></param>
      <returns>The resolved <see cref="T:System.Type" />.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if <paramref name="type" /> could not be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.Impl.ReflectorTypeUtils">
      <summary>
        <para> Provides helpers for working with types and type codes. </para>
        <para> This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. </para>
      </summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorTypeUtils.GetDefaultValue(Gallio.Reflection.ITypeInfo)">
      <summary>Gets the default value for a reflected type.</summary>
      <param name="type">The reflected type</param>
      <returns>The default value for the type, such as <c>0</c> if the type represents an integer, or <c>null</c> if the type is a reference type or if <paramref name="type" /> was null</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.ReflectorTypeUtils.GetTypeCode(Gallio.Reflection.ITypeInfo)">
      <summary>Determines the type code of a reflected type based on the type's name.</summary>
      <param name="type">The reflected type, or null if none</param>
      <returns>The type code of the type, or <see cref="F:System.TypeCode.Empty" /> if <paramref name="type" /> was null</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticArrayTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> array type wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticArrayTypeWrapper.ArrayRank">
      <summary>Gets the rank of the array type.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticArrayTypeWrapper.IsArray">
      <summary>Returns true if the type represents an array.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticArrayTypeWrapper.TypeAttributes">
      <summary>Gets the type attributes.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticArrayTypeWrapper.ApplySubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Applies a type substitution and returns the resulting type.</summary>
      <param name="substitution">The substitution</param>
      <returns>The type after substitution has been performed</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticAssemblyWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> assembly wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAssemblyWrapper.CodeReference">
      <summary>Gets a <see cref="P:Gallio.Reflection.ICodeElementInfo.CodeReference" /> for this code element.</summary>
      <value>The code reference</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAssemblyWrapper.FullName">
      <summary>Gets the full name of the assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAssemblyWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAssemblyWrapper.Name">
      <summary>Gets the name of the code element.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAssemblyWrapper.Path">
      <summary>Gets the codebase of the assembly as a local path if possible or as a Uri otherwise.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.GetCodeLocation">
      <summary>Gets the location of a resource that contains the declaration of this code element, or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if not available. The location may refer to the code element's source code or to the location of its compiled assembly.</summary>
      <returns>The code location</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.GetExportedTypes">
      <summary>Gets the public types exported by the assembly.</summary>
      <returns>The exported types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.GetName">
      <summary>Gets the <see cref="T:System.Reflection.AssemblyName" /> of the assembly.</summary>
      <returns>The assembly name</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.GetReferencedAssemblies">
      <summary>Gets the names of the assemblies referenced by this assembly.</summary>
      <returns>The names of the references assemblies</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.GetType(System.String)">
      <summary>Gets a public type by name, or null if not found.</summary>
      <param name="typeName">The type name</param>
      <returns>The type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.GetTypes">
      <summary>Gets all of the types in an assembly.</summary>
      <returns>The types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.IsAssemblyVisibleTo(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Returns true if the internal members of this assembly are visible to the specified assembly.</summary>
      <param name="other">The other assembly</param>
      <returns>True if the other assembly can see internal members of this assembly</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns null</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAssemblyWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticAttributeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> attribute wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAttributeWrapper.Constructor">
      <summary>Gets the constructor used to create the attribute.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAttributeWrapper.InitializedArgumentValues">
      <summary>Gets the initialized attribute constructor argument values.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAttributeWrapper.InitializedFieldValues">
      <summary>Gets the initialized attribute field values.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAttributeWrapper.InitializedPropertyValues">
      <summary>Gets the initialized attribute property values.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticAttributeWrapper.Type">
      <summary>Gets the attribute type.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAttributeWrapper.GetFieldValue(System.String)">
      <summary>Gets an attribute field value.</summary>
      <param name="name">The field name</param>
      <returns>The value, or a default value of the field's type if the field with the specified name was not initialized by the attribute declaration</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAttributeWrapper.GetPropertyValue(System.String)">
      <summary>Gets an attribute property value.</summary>
      <param name="name">The property name</param>
      <returns>The value, or a default value of the propery's type if the property with the specified name was not initialized by the attribute declaration</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAttributeWrapper.Resolve(System.Boolean)">
      <summary>Gets the attribute as an object.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays though it still may throw an exception if the attribute class cannot be instantiated</param>
      <returns>The attribute</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticAttributeWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticByRefTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> by-ref type wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticByRefTypeWrapper.IsByRef">
      <summary>Returns true if the type represents a type that is passed by reference.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticByRefTypeWrapper.TypeAttributes">
      <summary>Gets the type attributes.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticByRefTypeWrapper.ApplySubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Applies a type substitution and returns the resulting type.</summary>
      <param name="substitution">The substitution</param>
      <returns>The type after substitution has been performed</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticCodeElementWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> code element wrapper. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.GetAttributeInfos(Gallio.Reflection.ITypeInfo,System.Boolean)">
      <summary>Gets information about the code element's custom attributes of the specified type.</summary>
      <param name="attributeType">The attribute type, or null to return attributes of all types</param>
      <param name="inherit">If true, includes inherited attributes from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider" /> does)</param>
      <returns>The code element's attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.GetAttributes(Gallio.Reflection.ITypeInfo,System.Boolean)">
      <summary>Gets the code element's custom attributes of the specified type.</summary>
      <param name="attributeType">The attribute type</param>
      <param name="inherit">If true, includes inherited attributes from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider" /> does)</param>
      <returns>The attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.GetCustomAttributes">
      <summary>Gets all attributes that appear on this code element, excluding inherited attributes.</summary>
      <returns>The attribute wrappers</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.GetInheritedElements">
      <summary>Gets an enumeration of elements from which this code element inherits.</summary>
      <returns>The inherited code elements</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.GetPseudoCustomAttributes">
      <summary>
        <para> Gets all pseudo custom attributes associated with a member. </para>
        <para> These attributes do not really exist as custom attributes in the metadata. Rather, they are realizations of other metadata features in attribute form. For example, <see cref="T:System.SerializableAttribute" /> is represented in the metadata as a <see cref="T:System.Reflection.TypeAttributes" /> flag. Pseudo custom attributes preserve the illusion of these attributes. </para>
      </summary>
      <returns>The pseudo custom attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.GetXmlDocumentation">
      <summary>Gets the XML documentation associated with the code element.</summary>
      <returns>The XML documentation or null if none available</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.HasAttribute(Gallio.Reflection.ITypeInfo,System.Boolean)">
      <summary>Returns true if the code element has a custom attribute of the specified type.</summary>
      <param name="attributeType">The attribute type, or null to search for attributes of all types</param>
      <param name="inherit">If true, includes inherited attributes from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider" /> does)</param>
      <returns>True if the code element has at least one attribute of the specified type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticCodeElementWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticConstructedTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> constructed type wrapper. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.Assembly">
      <summary>Gets the assembly in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.ContainsGenericParameters">
      <summary>Returns true if the type contains unbound generic parameters. If so, the <see cref="P:Gallio.Reflection.ITypeInfo.GenericArguments" /> list will contain one or more <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.ElementType">
      <summary>Gets the element type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.FullName">
      <summary>Gets the full name of the type, or null if the type is a generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.Name">
      <summary>Gets the name of the code element.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.NameSuffix">
      <summary>Gets the suffix to append to the name of the constructed type.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.NamespaceName">
      <summary>Gets the name of the namespace in which the type is declared.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.GetCodeLocation">
      <summary>Gets the location of a resource that contains the declaration of this code element, or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if not available. The location may refer to the code element's source code or to the location of its compiled assembly.</summary>
      <returns>The code location</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.GetCustomAttributes">
      <summary>Gets all attributes that appear on this code element, excluding inherited attributes.</summary>
      <returns>The attribute wrappers</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticConstructedTypeWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticConstructorWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> constructor wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticConstructorWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticConstructorWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticConstructorWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> declared type wrapper such as a class, struct, enum or interface definition. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.Assembly">
      <summary>Gets the assembly in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.BaseType">
      <summary>Gets the base type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.ContainsGenericParameters">
      <summary>Returns true if the type contains unbound generic parameters. If so, the <see cref="P:Gallio.Reflection.ITypeInfo.GenericArguments" /> list will contain one or more <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.FullName">
      <summary>Gets the full name of the type, or null if the type is a generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GenericArguments">
      <summary>Gets the generic arguments of the type. The list may contain <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects when no type has yet been bound to a certain generic parameter slots.</summary>
      <value>The generic arguments, or an empty list if there are none</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.Interfaces">
      <summary>Gets all of the type's interfaces.</summary>
      <value>The type's interfaces</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.IsGenericType">
      <summary>Returns true if the type is a generic type. If so, the <see cref="P:Gallio.Reflection.ITypeInfo.GenericArguments" /> list will be non-empty.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.IsGenericTypeDefinition">
      <summary>Returns true if the type is a generic type definition.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.Name">
      <summary>Gets the name of the code element.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.NamespaceName">
      <summary>Gets the name of the namespace in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.Substitution">
      <summary>Gets the type substitution for generic parameters.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.TypeAttributes">
      <summary>Gets the type attributes.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.ApplySubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Applies a type substitution and returns the resulting type.</summary>
      <param name="substitution">The substitution</param>
      <returns>The type after substitution has been performed</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.ComposeSubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Composes the substitution of the type with the specified substitution and returns a new wrapper.</summary>
      <param name="substitution">The substitution</param>
      <returns>The new wrapper with the composed substitution</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetAllBaseTypes">
      <summary>Gets an enumeration of all base types.</summary>
      <returns>The enumeration of base types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetConstructors(System.Reflection.BindingFlags)">
      <summary>Gets all constructors of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The constructors</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetEvent(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a event by name, or null if not found.</summary>
      <param name="eventName">The event name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The event</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetEvents(System.Reflection.BindingFlags)">
      <summary>Gets all events of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The events</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetField(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a field by name, or null if not found.</summary>
      <param name="fieldName">The field name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The property</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetFields(System.Reflection.BindingFlags)">
      <summary>Gets all fields of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The fields</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetMethod(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a method by name, or null if not found.</summary>
      <param name="methodName">The method name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The method</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetMethods(System.Reflection.BindingFlags)">
      <summary>Gets all methods of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The methods</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetNestedType(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a nested type by name, or null if not found.</summary>
      <param name="nestedTypeName">The nested type name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The nested type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetNestedTypes(System.Reflection.BindingFlags)">
      <summary>Gets all nested types of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The nested types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetProperties(System.Reflection.BindingFlags)">
      <summary>Gets all properties of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The properties</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.GetProperty(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a property by name, or null if not found.</summary>
      <param name="propertyName">The property name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The property</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticDeclaredTypeWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticEventWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> event wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticEventWrapper.EventAttributes">
      <summary>Gets the event attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticEventWrapper.EventHandlerType">
      <summary>Gets the event handler type.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticEventWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticEventWrapper.GetOverridenOrHiddenEvents(System.Boolean)">
      <summary>Gets the events that this one overrides or hides. Only includes overrides that appear on class types, not interfaces.</summary>
      <param name="overridesOnly">If true, only returns overrides</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticEventWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticEventWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticFieldWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> field wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.FieldAttributes">
      <summary>Gets the field attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsAssembly">
      <summary>Gets a value indicating whether this field has Assembly level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsFamily">
      <summary>Gets a value indicating whether this field has Family level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsFamilyAndAssembly">
      <summary>Gets a value indicating whether this field has FamilyAndAssembly level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsFamilyOrAssembly">
      <summary>Gets a value indicating whether this field has FamilyOrAssembly level visibility.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsInitOnly">
      <summary>Returns true if the field is read-only and can only be set from the constructor.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsLiteral">
      <summary>Returns true if the field is a literal set at compile time.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsPrivate">
      <summary>Gets a value indicating whether the field is private.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsPublic">
      <summary>Gets a value indicating whether the field is public.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.IsStatic">
      <summary>Returns true if the field is static.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.Position">
      <summary>Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFieldWrapper.ValueType">
      <summary>Gets the type of value held in the slot.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticFieldWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticFieldWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticFunctionWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> function wrapper. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.CallingConvention">
      <summary>Gets the calling conventions for this method.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsAbstract">
      <summary>Returns true if the method is abstract.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsAssembly">
      <summary>Gets a value indicating whether this method can be called by other classes in the same assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsFamily">
      <summary>Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsFamilyAndAssembly">
      <summary>Gets a value indicating whether this method can be called by derived classes if they are in the same assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsFamilyOrAssembly">
      <summary>Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsFinal">
      <summary>Returns true if the method is final.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsHideBySig">
      <summary>Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsPrivate">
      <summary>Gets a value indicating whether this member is private.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsPublic">
      <summary>Gets a value indicating whether this is a public method.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsStatic">
      <summary>Returns true if the method is static.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.IsVirtual">
      <summary>Gets a value indicating whether the method is virtual.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticFunctionWrapper.MethodAttributes">
      <summary>Gets the method attributes.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticFunctionWrapper.ResolveMemberInfo(System.Boolean)">
      <summary>Implementation of <see cref="M:Gallio.Reflection.IMemberInfo.Resolve(System.Boolean)" /></summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticFunctionWrapper.ResolveMethodBase(System.Boolean)">
      <summary>Implementation of <see cref="M:Gallio.Reflection.IFunctionInfo.Resolve(System.Boolean)" /></summary>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticGenericParameterWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> generic parameter wrapper. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.Assembly">
      <summary>Gets the assembly in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.AssemblyQualifiedName">
      <summary>Gets the assembly-qualified name of the type, or null if the type is a generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.Constraints">
      <summary>Gets the constraints of the generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.ContainsGenericParameters">
      <summary>Returns true if the type contains unbound generic parameters. If so, the <see cref="P:Gallio.Reflection.ITypeInfo.GenericArguments" /> list will contain one or more <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.DeclaringMethod">
      <summary>Gets the declaring method, or null if the generic parameter belongs to a type.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.DeclaringType">
      <summary>Gets the declaring type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.FullName">
      <summary>Gets the full name of the type, or null if the type is a generic parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.GenericParameterAttributes">
      <summary>Gets the generic parameter attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.IsGenericParameter">
      <summary>Returns true if the type represents a generic type parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.NamespaceName">
      <summary>Gets the name of the namespace in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.Position">
      <summary>Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.TypeAttributes">
      <summary>Gets the type attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticGenericParameterWrapper.ValueType">
      <summary>Gets the type of value held in the slot.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticGenericParameterWrapper.ApplySubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Applies a type substitution and returns the resulting type.</summary>
      <param name="substitution">The substitution</param>
      <returns>The type after substitution has been performed</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticGenericParameterWrapper.CreateGenericMethodParameter(Gallio.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Reflection.Impl.StaticMethodWrapper)">
      <summary>Creates a wrapper for a generic method parameter.</summary>
      <param name="policy">The reflection policy</param>
      <param name="handle">The underlying reflection object</param>
      <param name="declaringMethod">The declaring method, which must be a generic method definition</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy" />, <paramref name="handle" /> or <paramref name="declaringMethod" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticGenericParameterWrapper.CreateGenericTypeParameter(Gallio.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Creates a wrapper for a generic type parameter.</summary>
      <param name="policy">The reflection policy</param>
      <param name="handle">The underlying reflection object</param>
      <param name="declaringType">The declaring type, which must be a generic type definition</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy" />, <paramref name="handle" /> or <paramref name="declaringType" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticGenericParameterWrapper.GetConstructors(System.Reflection.BindingFlags)">
      <summary>Gets all constructors of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The constructors</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticGenericParameterWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticMemberWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> member wrapper. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMemberWrapper.CodeReference">
      <summary>Gets a <see cref="P:Gallio.Reflection.ICodeElementInfo.CodeReference" /> for this code element.</summary>
      <value>The code reference</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMemberWrapper.DeclaringType">
      <summary>Gets the declaring type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMemberWrapper.ReflectedType">
      <summary>Gets the reflected type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMemberWrapper.Substitution">
      <summary>Gets the type substitution for generic parameters.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticMemberWrapper.GetCustomAttributes">
      <summary>Gets all attributes that appear on this code element, excluding inherited attributes.</summary>
      <returns>The attribute wrappers</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticMemberWrapper.ResolveMemberInfo(System.Boolean)">
      <summary>Implementation of <see cref="M:Gallio.Reflection.IMemberInfo.Resolve(System.Boolean)" /></summary>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticMethodWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> method wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.ContainsGenericParameters">
      <summary>Returns true if the method contains unbound generic parameters. If so, the <see cref="P:Gallio.Reflection.IMethodInfo.GenericArguments" /> list will contain one or more <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.GenericArguments">
      <summary>Gets the generic arguments of the method. The list may contain <see cref="T:Gallio.Reflection.IGenericParameterInfo" /> objects when no type has yet been bound to a certain generic parameter slots.</summary>
      <value>The generic arguments</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.IsGenericMethod">
      <summary>Returns true if the method is a generic method. If so, the <see cref="P:Gallio.Reflection.IMethodInfo.GenericArguments" /> list will be non-empty.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.IsGenericMethodDefinition">
      <summary>Returns true if the method is a generic method definition.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.IsOverride">
      <summary>Returns true if this method overrides another.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.ReturnParameter">
      <summary>Gets the method return parameter object that contains information about the return value and its attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.ReturnType">
      <summary>Gets the method return type.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticMethodWrapper.Substitution">
      <summary>Gets the type substitution for generic parameters.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticMethodWrapper.GetOverridenOrHiddenMethods(System.Boolean)">
      <summary>Gets the methods that this one overrides or hides. Only includes overrides that appear on class types, not interfaces.</summary>
      <param name="overridesOnly">If true, only returns overrides</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticMethodWrapper.HidesMethod(Gallio.Reflection.Impl.StaticMethodWrapper)">
      <summary>Returns true if this method hides the specified method.</summary>
      <param name="other">The other method</param>
      <returns>True if this method hides the other method</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticMethodWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticMethodWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticParameterWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> parameter wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.CodeReference">
      <summary>Gets a <see cref="P:Gallio.Reflection.ICodeElementInfo.CodeReference" /> for this code element.</summary>
      <value>The code reference</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.IsIn">
      <summary>Gets a value indicating whether this is an input parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.IsOptional">
      <summary>Gets a value indicating whether this parameter is optional.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.IsOut">
      <summary>Gets a value indicating whether this is an output parameter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.Member">
      <summary>Gets the member to which the parameter belongs.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.Name">
      <summary>Gets the name of the code element.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.ParameterAttributes">
      <summary>Gets the parameter attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.Position">
      <summary>Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticParameterWrapper.ValueType">
      <summary>Gets the type of value held in the slot.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticParameterWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticParameterWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticPointerTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> pointer type wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPointerTypeWrapper.IsPointer">
      <summary>Returns true if the type represents a pointer.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPointerTypeWrapper.TypeAttributes">
      <summary>Gets the type attributes.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticPointerTypeWrapper.ApplySubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Applies a type substitution and returns the resulting type.</summary>
      <param name="substitution">The substitution</param>
      <returns>The type after substitution has been performed</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticPropertyWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> property wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPropertyWrapper.CanRead">
      <summary>Returns true if the property can be read.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPropertyWrapper.CanWrite">
      <summary>Returns true if the property can be written.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPropertyWrapper.Kind">
      <summary>Gets the kind of code element represented by this instance.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPropertyWrapper.Position">
      <summary>Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPropertyWrapper.PropertyAttributes">
      <summary>Gets the property attributes.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticPropertyWrapper.ValueType">
      <summary>Gets the type of value held in the slot.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticPropertyWrapper.GetOverridenOrHiddenProperties(System.Boolean)">
      <summary>Gets the properties that this one overrides or hides. Only includes overrides that appear on class types, not interfaces.</summary>
      <param name="overridesOnly">If true, only returns overrides</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticPropertyWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticPropertyWrapper.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticReflectedMemberWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> member wrapper for members that are not types, generic parameters or nested types. These members must be declared by types, so they all share the constraint that the declaring type and reflected type must not be null. In particular, the reflected type may be a subtype of the declaring type in the case of inherited members. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticReflectedMemberWrapper.ReflectedType">
      <summary>Gets the reflected type, or null if none.</summary>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticReflectionPolicy">
      <summary>
        <para> The static reflection policy base class is intended to assist with the implementation of custom reflection policies defined over static metadata. </para>
        <para> It flattens out the code element hierarchy to ease implementation of new policies. It provides a mechanism for handling generic type substitutions to ensure a consistent and correct implementation of generic type and generic method instantiations. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.Equals(Gallio.Reflection.Impl.StaticWrapper,Gallio.Reflection.Impl.StaticWrapper)">
      <summary>Determines if two wrappers represent the same object.</summary>
      <param name="a">The first wrapper, not null</param>
      <param name="b">The second wrapper, not null</param>
      <returns>True if both wrapper represent the same object</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyCustomAttributes(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Gets the custom attributes of an assembly.</summary>
      <param name="assembly">The assembly, not null</param>
      <returns>The attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyExportedTypes(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Gets the public types exported by an assembly.</summary>
      <param name="assembly">The assembly wrapper, not null</param>
      <returns>The types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyName(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Gets the name of an assembly.</summary>
      <param name="assembly">The assembly wrapper, not null</param>
      <returns>The assembly name</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyPath(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Gets the path of an assembly.</summary>
      <param name="assembly">The assembly wrapper, not null</param>
      <returns>The assembly path</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyReferences(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Gets the references of an assembly.</summary>
      <param name="assembly">The assembly wrapper, not null</param>
      <returns>The assembly references</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyType(Gallio.Reflection.Impl.StaticAssemblyWrapper,System.String)">
      <summary>Gets the specified named type within an assembly.</summary>
      <param name="assembly">The assembly wrapper, not null</param>
      <param name="typeName">The type name, not null</param>
      <returns>The type, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAssemblyTypes(Gallio.Reflection.Impl.StaticAssemblyWrapper)">
      <summary>Gets all types contained in an assembly.</summary>
      <param name="assembly">The assembly wrapper, not null</param>
      <returns>The types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAttributeConstructor(Gallio.Reflection.Impl.StaticAttributeWrapper)">
      <summary>Gets the constructor of an attribute.</summary>
      <param name="attribute">The attribute, not null</param>
      <returns>The constructor</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAttributeConstructorArguments(Gallio.Reflection.Impl.StaticAttributeWrapper)">
      <summary>Gets the constructor arguments of an attribute.</summary>
      <param name="attribute">The attribute, not null</param>
      <returns>The constructor argument values</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAttributeFieldArguments(Gallio.Reflection.Impl.StaticAttributeWrapper)">
      <summary>Gets the field arguments of an attribute.</summary>
      <param name="attribute">The attribute, not null</param>
      <returns>The field argument values</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetAttributePropertyArguments(Gallio.Reflection.Impl.StaticAttributeWrapper)">
      <summary>Gets the property arguments of an attribute.</summary>
      <param name="attribute">The attribute, not null</param>
      <returns>The property argument values</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetEventAddMethod(Gallio.Reflection.Impl.StaticEventWrapper)">
      <summary>Gets the add method of an event, or null if none.</summary>
      <param name="event">The event, not null</param>
      <returns>The add method, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetEventAttributes(Gallio.Reflection.Impl.StaticEventWrapper)">
      <summary>Gets the attributes of an event.</summary>
      <param name="event">The event, not null</param>
      <returns>The event attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetEventHandlerType(Gallio.Reflection.Impl.StaticEventWrapper)">
      <summary>Gets the event handler type of an event.</summary>
      <param name="event">The event, not null</param>
      <returns>The event handler type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetEventRaiseMethod(Gallio.Reflection.Impl.StaticEventWrapper)">
      <summary>Gets the raise method of an event, or null if none.</summary>
      <param name="event">The event, not null</param>
      <returns>The raise method, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetEventRemoveMethod(Gallio.Reflection.Impl.StaticEventWrapper)">
      <summary>Gets the remove method of an event, or null if none.</summary>
      <param name="event">The event, not null</param>
      <returns>The remove method, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetFieldAttributes(Gallio.Reflection.Impl.StaticFieldWrapper)">
      <summary>Gets the attributes of a field.</summary>
      <param name="field">The field, not null</param>
      <returns>The field attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetFieldType(Gallio.Reflection.Impl.StaticFieldWrapper)">
      <summary>Gets the field type.</summary>
      <param name="field">The field, not null</param>
      <returns>The field type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetFunctionAttributes(Gallio.Reflection.Impl.StaticFunctionWrapper)">
      <summary>Gets the attributes of a function.</summary>
      <param name="function">The function, not null</param>
      <returns>The function attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetFunctionCallingConvention(Gallio.Reflection.Impl.StaticFunctionWrapper)">
      <summary>Gets the calling conventions of a function.</summary>
      <param name="function">The function, not null</param>
      <returns>The function calling conventions</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetFunctionParameters(Gallio.Reflection.Impl.StaticFunctionWrapper)">
      <summary>Gets the parameters of a function.</summary>
      <param name="function">The function, not null</param>
      <returns>The parameters</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetGenericParameterAttributes(Gallio.Reflection.Impl.StaticGenericParameterWrapper)">
      <summary>Gets the attributes of a generic parameter.</summary>
      <param name="genericParameter">The generic parameter, not null</param>
      <returns>The generic parameter attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetGenericParameterConstraints(Gallio.Reflection.Impl.StaticGenericParameterWrapper)">
      <summary>Gets the generic parameter constraints.</summary>
      <param name="genericParameter">The generic parameter, not null</param>
      <returns>The generic parameter constraints</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetGenericParameterPosition(Gallio.Reflection.Impl.StaticGenericParameterWrapper)">
      <summary>Gets the generic parameter position.</summary>
      <param name="genericParameter">The generic parameter, not null</param>
      <returns>The generic parameter position</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetHashCode(Gallio.Reflection.Impl.StaticWrapper)">
      <summary>Gets a hashcode for a wrapper.</summary>
      <param name="wrapper">The wrapper, not null</param>
      <returns>The wrapper's hash code</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetMemberCustomAttributes(Gallio.Reflection.Impl.StaticMemberWrapper)">
      <summary>Gets the custom attributes of a member.</summary>
      <param name="member">The member, not null</param>
      <returns>The custom attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetMemberName(Gallio.Reflection.Impl.StaticMemberWrapper)">
      <summary>Gets the short name of a member. In the case of a generic type, should exclude the generic parameter count part of the name. eg. "`1"</summary>
      <param name="member">The member, not null</param>
      <returns>The member's name</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetMemberSourceLocation(Gallio.Reflection.Impl.StaticMemberWrapper)">
      <summary>Gets the source code location of a member.</summary>
      <param name="member">The member, not null</param>
      <returns>The source code location, or <see cref="F:Gallio.Reflection.CodeLocation.Unknown" /> if not available</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetMethodGenericParameters(Gallio.Reflection.Impl.StaticMethodWrapper)">
      <summary>Gets the generic parameters of a method.</summary>
      <param name="method">The method, not null</param>
      <returns>The generic parameters</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetMethodReturnParameter(Gallio.Reflection.Impl.StaticMethodWrapper)">
      <summary>Gets the return parameter of a method.</summary>
      <param name="method">The method, not null</param>
      <returns>The return parameter</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetParameterAttributes(Gallio.Reflection.Impl.StaticParameterWrapper)">
      <summary>Gets the attributes of a parameter.</summary>
      <param name="parameter">The parameter, not null</param>
      <returns>The parameter attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetParameterCustomAttributes(Gallio.Reflection.Impl.StaticParameterWrapper)">
      <summary>Gets the custom attributes of a parameter.</summary>
      <param name="parameter">The parameter, not null</param>
      <returns>The custom attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetParameterName(Gallio.Reflection.Impl.StaticParameterWrapper)">
      <summary>Gets the name of a parameter.</summary>
      <param name="parameter">The parameter, not null</param>
      <returns>The parameter's name</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetParameterPosition(Gallio.Reflection.Impl.StaticParameterWrapper)">
      <summary>Gets the parameter's position, or -1 if the parameter is a return value.</summary>
      <param name="parameter">The parameter, not null</param>
      <returns>The parameter's position</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetParameterType(Gallio.Reflection.Impl.StaticParameterWrapper)">
      <summary>Gets the parameter type.</summary>
      <param name="parameter">The parameter, not null</param>
      <returns>The parameter type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetPropertyAttributes(Gallio.Reflection.Impl.StaticPropertyWrapper)">
      <summary>Gets the attributes of a property.</summary>
      <param name="property">The property, not null</param>
      <returns>The property attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetPropertyGetMethod(Gallio.Reflection.Impl.StaticPropertyWrapper)">
      <summary>Gets the get method of a property, or null if none.</summary>
      <param name="property">The property, not null</param>
      <returns>The get method, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetPropertySetMethod(Gallio.Reflection.Impl.StaticPropertyWrapper)">
      <summary>Gets the set method of a property, or null if none.</summary>
      <param name="property">The property, not null</param>
      <returns>The set method, or null if none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetPropertyType(Gallio.Reflection.Impl.StaticPropertyWrapper)">
      <summary>Gets the property type.</summary>
      <param name="property">The property, not null</param>
      <returns>The property type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeAssembly(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the assembly that contains a type.</summary>
      <param name="type">The type, not null</param>
      <returns>The type's assembly</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeAttributes(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the attributes of a type.</summary>
      <param name="type">The type, not null</param>
      <returns>The type attributes</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeBaseType(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the base type of atype.</summary>
      <param name="type">The type, not null</param>
      <returns>The base type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeConstructors(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the constructors of a type. Only includes declared methods, not inherited ones.</summary>
      <param name="type">The type, not null</param>
      <returns>The type's constructors</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeEvents(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the events of a type. Only includes declared methods, not inherited ones.</summary>
      <param name="type">The type, not null</param>
      <param name="reflectedType">The reflected type, not null</param>
      <returns>The type's events</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeFields(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the fields of a type. Only includes declared methods, not inherited ones.</summary>
      <param name="type">The type, not null</param>
      <param name="reflectedType">The reflected type, not null</param>
      <returns>The type's fields</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeGenericParameters(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the generic parameters of a type, including all generic parameters of its declaring types if it is nested enumerated from outside in.</summary>
      <param name="type">The type, not null</param>
      <returns>The type's generic parameters</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeInterfaces(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the interfaces directly implemented by a type.</summary>
      <param name="type">The type, not null</param>
      <returns>The type's interfaces</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeMethods(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the methods of a type including accessor methods for properties and events. Only includes declared methods, not inherited ones.</summary>
      <param name="type">The type, not null</param>
      <param name="reflectedType">The reflected type, not null</param>
      <returns>The type's methods</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeNamespace(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the namespace that contains a type.</summary>
      <param name="type">The type, not null</param>
      <returns>The type's namespace, or an empty string if it has none</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeNestedTypes(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the nested types of a type. Only includes declared nested types, not inherited ones.</summary>
      <param name="type">The type, not null</param>
      <returns>The type's nested types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticReflectionPolicy.GetTypeProperties(Gallio.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Reflection.Impl.StaticDeclaredTypeWrapper)">
      <summary>Gets the properties of a type. Only includes declared methods, not inherited ones.</summary>
      <param name="type">The type, not null</param>
      <param name="reflectedType">The reflected type, not null</param>
      <returns>The type's properties</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticSpecialTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> type wrapper that represents a special type that is either constructed from other types or derived from them as with a generic parameter. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.BaseTypeInternal">
      <summary>Internal implementation of <see cref="P:Gallio.Reflection.Impl.StaticTypeWrapper.BaseType" />.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.Interfaces">
      <summary>Gets all of the type's interfaces.</summary>
      <value>The type's interfaces</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.Substitution">
      <summary>Gets the type substitution for generic parameters.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetEvent(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a event by name, or null if not found.</summary>
      <param name="eventName">The event name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The event</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetEvents(System.Reflection.BindingFlags)">
      <summary>Gets all events of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The events</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetField(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a field by name, or null if not found.</summary>
      <param name="fieldName">The field name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The property</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetFields(System.Reflection.BindingFlags)">
      <summary>Gets all fields of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The fields</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetMethod(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a method by name, or null if not found.</summary>
      <param name="methodName">The method name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The method</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetMethods(System.Reflection.BindingFlags)">
      <summary>Gets all methods of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The methods</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetNestedType(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a nested type by name, or null if not found.</summary>
      <param name="nestedTypeName">The nested type name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The nested type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetNestedTypes(System.Reflection.BindingFlags)">
      <summary>Gets all nested types of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The nested types</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetProperties(System.Reflection.BindingFlags)">
      <summary>Gets all properties of the type that satisfy the binding flags.</summary>
      <param name="bindingFlags">The binding flags</param>
      <returns>The properties</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetProperty(System.String,System.Reflection.BindingFlags)">
      <summary>Gets a property by name, or null if not found.</summary>
      <param name="propertyName">The property name</param>
      <param name="bindingFlags">The binding flags</param>
      <returns>The property</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticSpecialTypeWrapper.GetPseudoCustomAttributes">
      <summary>
        <para> Gets all pseudo custom attributes associated with a member. </para>
        <para> These attributes do not really exist as custom attributes in the metadata. Rather, they are realizations of other metadata features in attribute form. For example, <see cref="T:System.SerializableAttribute" /> is represented in the metadata as a <see cref="T:System.Reflection.TypeAttributes" /> flag. Pseudo custom attributes preserve the illusion of these attributes. </para>
      </summary>
      <returns>The pseudo custom attributes</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticTypeWrapper">
      <summary>A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> type wrapper. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.BaseType">
      <summary>Gets the base type of the type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.BaseTypeInternal">
      <summary>Internal implementation of <see cref="P:Gallio.Reflection.Impl.StaticTypeWrapper.BaseType" />.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.CodeReference">
      <summary>Gets a <see cref="P:Gallio.Reflection.ICodeElementInfo.CodeReference" /> for this code element.</summary>
      <value>The code reference</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.ElementType">
      <summary>Gets the element type, or null if none.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsAbstract">
      <summary>Returns true if the type is abstract and must be overridden.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsClass">
      <summary>Returns true if the type is a class.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsEnum">
      <summary>Returns true if the type represents an enumeration.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsInterface">
      <summary>Returns true if the type is an interface.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNested">
      <summary>Returns true if the type is nested.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNestedAssembly">
      <summary>Returns true if the type is nested and is visible only within its own assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNestedFamily">
      <summary>Returns true if the type is nested and visible only within its own family.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNestedFamilyAndAssembly">
      <summary>Returns true if the type is nested and visible only to classes that belong to both its own family and its own assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNestedFamilyOrAssembly">
      <summary>Returns true if the type is nested and visible only to classes that belong to either its own family or to its own assembly.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNestedPrivate">
      <summary>Returns true if the type is nested and declared private.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNestedPublic">
      <summary>Returns true if the type is nested and declared public.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsNotPublic">
      <summary>Returns true if the type is not declared public.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsPublic">
      <summary>Returns true if the type is declared public.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsSealed">
      <summary>Returns true if the type is sealed.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.IsValueType">
      <summary>Returns true if the type is a value type.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.Namespace">
      <summary>Gets the namespace in which the type is declared.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeWrapper.TypeCode">
      <summary>Gets the type's <see cref="P:Gallio.Reflection.ITypeInfo.TypeCode" />.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.ApplySubstitution(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Applies a type substitution and returns the resulting type.</summary>
      <param name="substitution">The substitution</param>
      <returns>The type after substitution has been performed</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.GetInheritedElements">
      <summary>Gets an enumeration of elements from which this code element inherits.</summary>
      <returns>The inherited code elements</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.IsAssignableFrom(Gallio.Reflection.ITypeInfo)">
      <summary>Returns true if variables of this type can be assigned with values of the specified type.</summary>
      <param name="type">The other type, or null if none</param>
      <returns>True if the other type is not null and this type is assignable from the other type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.IsSubclassOf(Gallio.Reflection.ITypeInfo)">
      <summary>Returns true if this type is a subclass of the specified type.</summary>
      <param name="type">The other type, or null if none</param>
      <returns>True if the other type is not null, this type is a subclass of the other type, and this type not the same as the other type</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.Resolve(System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target.</summary>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.Resolve(System.Reflection.MethodInfo,System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target within the scope of the specified method.</summary>
      <param name="methodContext">The method that is currently in scope, or null if none. This parameter is used when resolving types that are part of the signature of a generic method so that generic method arguments can be handled correctly.</param>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeWrapper.ResolveMemberInfo(System.Boolean)">
      <summary>Implementation of <see cref="M:Gallio.Reflection.IMemberInfo.Resolve(System.Boolean)" /></summary>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticWrapper">
      <summary>
        <para> A <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> wrapper. </para>
        <para> A wrapper holds an underlying reflection object. Its behavior is derived from by primitive operations on the <see cref="P:Gallio.Reflection.Impl.StaticWrapper.Handle" /> defined by the particular <see cref="P:Gallio.Reflection.Impl.StaticWrapper.Policy" /> implementation that is in use. </para>This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticWrapper.Handle">
      <summary>Gets the underlying reflection object.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticWrapper.Policy">
      <summary>Gets the reflection policy.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticWrapper.Equals(Gallio.Reflection.Impl.StaticWrapper)" />
    <member name="M:Gallio.Reflection.Impl.StaticWrapper.Equals(System.Object)" />
    <member name="M:Gallio.Reflection.Impl.StaticWrapper.EqualsByHandle(Gallio.Reflection.Impl.StaticWrapper)">
      <summary>Compares the policy and handle of this wrapper with those of another using <see cref="M:Gallio.Reflection.Impl.StaticReflectionPolicy.Equals(Gallio.Reflection.Impl.StaticWrapper,Gallio.Reflection.Impl.StaticWrapper)" />.</summary>
      <param name="other">The other wrapper</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticWrapper.GetHashCode" />
    <member name="T:Gallio.Reflection.Impl.UnresolvedConstructorInfo">
      <summary>Represents a <see cref="T:System.Reflection.ConstructorInfo" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.IConstructorInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Attributes">
      <summary>Gets the attributes associated with this method.</summary>
      <value>One of the <see cref="T:System.Reflection.MethodAttributes" /> values.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.CallingConvention">
      <summary>Gets a value indicating the calling conventions for this method.</summary>
      <value>The <see cref="T:System.Reflection.CallingConventions" /> for this method.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.ContainsGenericParameters">
      <summary>Gets a value indicating whether the generic method contains unassigned generic type parameters.</summary>
      <value>true if the current <see cref="T:System.Reflection.MethodBase" /> object represents a generic method that contains unassigned generic type parameters; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.DeclaringType">
      <summary>Gets the class that declares this member.</summary>
      <value>The Type object for the class that declares this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.IsGenericMethod">
      <summary>Gets a value indicating whether the method is generic.</summary>
      <value>true if the current <see cref="T:System.Reflection.MethodBase" /> represents a generic method; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.IsGenericMethodDefinition">
      <summary>Gets a value indicating whether the method is a generic method definition.</summary>
      <value>true if the current <see cref="T:System.Reflection.MethodBase" /> object represents the definition of a generic method; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.MemberType">
      <summary>Gets a <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a constructor.</summary>
      <value>A <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a constructor.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.MetadataToken">
      <summary>Gets a value that identifies a metadata element.</summary>
      <value>A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module" />, uniquely identifies a metadata element.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.MethodHandle">
      <summary>Gets a handle to the internal metadata representation of a method.</summary>
      <value>A <see cref="T:System.RuntimeMethodHandle" /> object.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Module">
      <summary>Gets the module in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</summary>
      <value>The <see cref="T:System.Reflection.Module" /> in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Name">
      <summary>Gets the name of the current member.</summary>
      <value>A <see cref="T:System.String" /> containing the name of this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedConstructorInfo.ReflectedType">
      <summary>Gets the class object that was used to obtain this instance of MemberInfo.</summary>
      <value>The Type object through which this MemberInfo object was obtained.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetCustomAttributes(System.Boolean)">
      <summary>When overridden in a derived class, returns an array containing all the custom attributes.</summary>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type" />.</summary>
      <param name="attributeType">The type of attribute to search for. Only attributes that are assignable to this type are returned.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetGenericArguments">
      <summary>Returns an array of <see cref="T:System.Type" /> objects that represent the type arguments of a generic method or the type parameters of a generic method definition.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that represent the type arguments of a generic method or the type parameters of a generic method definition. Returns an empty array if the current method is not a generic method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetMethodBody">
      <summary>When overridden in a derived class, gets a <see cref="T:System.Reflection.MethodBody" /> object that provides access to the MSIL stream, local variables, and exceptions for the current method.</summary>
      <returns>A <see cref="T:System.Reflection.MethodBody" /> object that provides access to the MSIL stream, local variables, and exceptions for the current method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetMethodImplementationFlags">
      <summary>When overridden in a derived class, returns the <see cref="T:System.Reflection.MethodImplAttributes" /> flags.</summary>
      <returns>The MethodImplAttributes flags.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.GetParameters">
      <summary>When overridden in a derived class, gets the parameters of the specified method or constructor.</summary>
      <returns>An array of type ParameterInfo containing information that matches the signature of the method (or constructor) reflected by this MethodBase instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Invoke(System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)">
      <summary>When implemented in a derived class, invokes the constructor reflected by this ConstructorInfo with the specified arguments, under the constraints of the specified Binder.</summary>
      <param name="invokeAttr">One of the BindingFlags values that specifies the type of binding.</param>
      <param name="binder">A Binder that defines a set of properties and enables the binding, coercion of argument types, and invocation of members using reflection. If binder is null, then Binder.DefaultBinding is used.</param>
      <param name="parameters">An array of type Object used to match the number, order and type of the parameters for this constructor, under the constraints of binder. If this constructor does not require parameters, pass an array with zero elements, as in Object[] parameters = new Object[0]. Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. For reference-type elements, this value is null. For value-type elements, this value is 0, 0.0, or false, depending on the specific element type.</param>
      <param name="culture">A <see cref="T:System.Globalization.CultureInfo" /> used to govern the coercion of types. If this is null, the <see cref="T:System.Globalization.CultureInfo" nolink="true" /> for the current thread is used.</param>
      <returns>An instance of the class associated with the constructor.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)">
      <summary>When overridden in a derived class, invokes the reflected method or constructor with the given parameters.</summary>
      <param name="obj">The object on which to invoke the method or constructor. If a method is static, this argument is ignored. If a constructor is static, this argument must be null or an instance of the class that defines the constructor.</param>
      <param name="invokeAttr">A bitmask that is a combination of 0 or more bit flags from <see cref="T:System.Reflection.BindingFlags" />. If binder is null, this parameter is assigned the value <see cref="F:System.Reflection.BindingFlags.Default" />; thus, whatever you pass in is ignored.</param>
      <param name="binder">An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is null, the default binder is used.</param>
      <param name="parameters">An argument list for the invoked method or constructor. This is an array of objects with the same number, order, and type as the parameters of the method or constructor to be invoked. If there are no parameters, this should be null.If the method or constructor represented by this instance takes a ByRef parameter, there is no special attribute required for that parameter in order to invoke the method or constructor using this function. Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. For reference-type elements, this value is null. For value-type elements, this value is 0, 0.0, or false, depending on the specific element type.</param>
      <param name="culture">An instance of CultureInfo used to govern the coercion of types. If this is null, the CultureInfo for the current thread is used. (This is necessary to convert a String that represents 1000 to a Double value, for example, since 1000 is represented differently by different cultures.)</param>
      <returns>An Object containing the return value of the invoked method, or null in the case of a constructor, or null if the method's return type is void. Before calling the method or constructor, Invoke checks to see if the user has access permission and verify that the parameters are valid.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.IsDefined(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member.</summary>
      <param name="attributeType">The Type object to which the custom attributes are applied.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>true if one or more instance of attributeType is applied to this member; otherwise false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedConstructorInfo.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.UnresolvedEventInfo">
      <summary>Represents a <see cref="T:System.Reflection.EventInfo" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.IEventInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.Attributes">
      <summary>Gets the attributes for this event.</summary>
      <value>The read-only attributes for this event.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.DeclaringType">
      <summary>Gets the class that declares this member.</summary>
      <value>The Type object for the class that declares this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.MemberType">
      <summary>Gets a <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is an event.</summary>
      <value>A <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is an event.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.MetadataToken">
      <summary>Gets a value that identifies a metadata element.</summary>
      <value>A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module" />, uniquely identifies a metadata element.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.Module">
      <summary>Gets the module in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</summary>
      <value>The <see cref="T:System.Reflection.Module" /> in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.Name">
      <summary>Gets the name of the current member.</summary>
      <value>A <see cref="T:System.String" /> containing the name of this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedEventInfo.ReflectedType">
      <summary>Gets the class object that was used to obtain this instance of MemberInfo.</summary>
      <value>The Type object through which this MemberInfo object was obtained.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetAddMethod(System.Boolean)">
      <summary>When overridden in a derived class, retrieves the MethodInfo object for the <see cref="M:System.Reflection.EventInfo.AddEventHandler(System.Object,System.Delegate)" /> method of the event, specifying whether to return non-public methods.</summary>
      <param name="nonPublic">true if non-public methods can be returned; otherwise, false.</param>
      <returns>A <see cref="T:System.Reflection.MethodInfo" /> object representing the method used to add an event handler delegate to the event source.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetCustomAttributes(System.Boolean)">
      <summary>When overridden in a derived class, returns an array containing all the custom attributes.</summary>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type" />.</summary>
      <param name="attributeType">The type of attribute to search for. Only attributes that are assignable to this type are returned.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetOtherMethods(System.Boolean)">
      <summary>Returns the methods that have been associated with the event in metadata using the .other directive, specifying whether to include non-public methods.</summary>
      <param name="nonPublic">true to include non-public methods; otherwise, false.</param>
      <returns>An array of <see cref="T:System.Reflection.EventInfo" /> objects representing methods that have been associated with an event in metadata by using the .other directive. If there are no methods matching the specification, an empty array is returned.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetRaiseMethod(System.Boolean)">
      <summary>When overridden in a derived class, returns the method that is called when the event is raised, specifying whether to return non-public methods.</summary>
      <param name="nonPublic">true if non-public methods can be returned; otherwise, false.</param>
      <returns>A MethodInfo object that was called when the event was raised.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.GetRemoveMethod(System.Boolean)">
      <summary>When overridden in a derived class, retrieves the MethodInfo object for removing a method of the event, specifying whether to return non-public methods.</summary>
      <param name="nonPublic">true if non-public methods can be returned; otherwise, false.</param>
      <returns>A <see cref="T:System.Reflection.MethodInfo" /> object representing the method used to remove an event handler delegate from the event source.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.IsDefined(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member.</summary>
      <param name="attributeType">The Type object to which the custom attributes are applied.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>true if one or more instance of attributeType is applied to this member; otherwise false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedEventInfo.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.UnresolvedFieldInfo">
      <summary>Represents a <see cref="T:System.Reflection.FieldInfo" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.IFieldInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.Attributes">
      <summary>Gets the attributes associated with this field.</summary>
      <value>The FieldAttributes for this field.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.DeclaringType">
      <summary>Gets the class that declares this member.</summary>
      <value>The Type object for the class that declares this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.FieldHandle">
      <summary>Gets a RuntimeFieldHandle, which is a handle to the internal metadata representation of a field.</summary>
      <value>A handle to the internal metadata representation of a field.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.FieldType">
      <summary>Gets the type of this field object.</summary>
      <value>The type of this field object.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.MemberType">
      <summary>Gets a <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a field.</summary>
      <value>A <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a field.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.MetadataToken">
      <summary>Gets a value that identifies a metadata element.</summary>
      <value>A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module" />, uniquely identifies a metadata element.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.Module">
      <summary>Gets the module in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</summary>
      <value>The <see cref="T:System.Reflection.Module" /> in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.Name">
      <summary>Gets the name of the current member.</summary>
      <value>A <see cref="T:System.String" /> containing the name of this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedFieldInfo.ReflectedType">
      <summary>Gets the class object that was used to obtain this instance of MemberInfo.</summary>
      <value>The Type object through which this MemberInfo object was obtained.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetCustomAttributes(System.Boolean)">
      <summary>When overridden in a derived class, returns an array containing all the custom attributes.</summary>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type" />.</summary>
      <param name="attributeType">The type of attribute to search for. Only attributes that are assignable to this type are returned.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetOptionalCustomModifiers">
      <summary>Gets an array of types that identify the optional custom modifiers of the field.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that identify the optional custom modifiers of the current field, such as <see cref="T:System.Runtime.CompilerServices.IsConst" /> or <see cref="T:System.Runtime.CompilerServices.IsImplicitlyDeferenced" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetRawConstantValue">
      <summary>Returns a literal value associated with the field by a compiler.</summary>
      <returns>An <see cref="T:System.Object" /> that contains the literal value associated with the field. If the literal value is a class type with an element value of zero, the return value is null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetRequiredCustomModifiers">
      <summary>Gets an array of types that identify the required custom modifiers of the property.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that identify the required custom modifiers of the current property, such as <see cref="T:System.Runtime.CompilerServices.IsConst" /> or <see cref="T:System.Runtime.CompilerServices.IsImplicitlyDeferenced" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetValue(System.Object)">
      <summary>When overridden in a derived class, returns the value of a field supported by a given object.</summary>
      <param name="obj">The object whose field value will be returned.</param>
      <returns>An object containing the value of the field reflected by this instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.GetValueDirect(System.TypedReference)">
      <summary>Returns the value of a field supported by a given object.</summary>
      <param name="obj">A <see cref="T:System.TypedReference" /> structure that encapsulates a managed pointer to a location and a runtime representation of the type that might be stored at that location.</param>
      <returns>An Object containing a field value.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.IsDefined(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member.</summary>
      <param name="attributeType">The Type object to which the custom attributes are applied.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>true if one or more instance of attributeType is applied to this member; otherwise false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo)">
      <summary>When overridden in a derived class, sets the value of the field supported by the given object.</summary>
      <param name="obj">The object whose field value will be set.</param>
      <param name="value">The value to assign to the field.</param>
      <param name="invokeAttr">A field of Binder that specifies the type of binding that is desired (for example, Binder.CreateInstance or Binder.ExactBinding).</param>
      <param name="binder">A set of properties that enables the binding, coercion of argument types, and invocation of members through reflection. If binder is null, then Binder.DefaultBinding is used.</param>
      <param name="culture">The software preferences of a particular culture.</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.SetValueDirect(System.TypedReference,System.Object)">
      <summary>Sets the value of the field supported by the given object.</summary>
      <param name="obj">A <see cref="T:System.TypedReference" /> structure that encapsulates a managed pointer to a location and a runtime representation of the type that can be stored at that location.</param>
      <param name="value">The value to assign to the field.</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedFieldInfo.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.UnresolvedMethodInfo">
      <summary>Represents a <see cref="T:System.Reflection.MethodInfo" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.IMethodInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.Attributes">
      <summary>Gets the attributes associated with this method.</summary>
      <value>One of the <see cref="T:System.Reflection.MethodAttributes" /> values.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.CallingConvention">
      <summary>Gets a value indicating the calling conventions for this method.</summary>
      <value>The <see cref="T:System.Reflection.CallingConventions" /> for this method.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.ContainsGenericParameters">
      <summary>Gets a value indicating whether a generic method contains unassigned generic type parameters.</summary>
      <value>true if the current <see cref="T:System.Reflection.MethodInfo" /> contains unassigned generic type parameters; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.DeclaringType">
      <summary>Gets the class that declares this member.</summary>
      <value>The Type object for the class that declares this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.IsGenericMethod">
      <summary>Gets a value indicating whether the current method is a generic method.</summary>
      <value>true if the current method is a generic method; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.IsGenericMethodDefinition">
      <summary>Gets a value indicating whether the current <see cref="T:System.Reflection.MethodInfo" /> represents the definition of a generic method.</summary>
      <value>true if the <see cref="T:System.Reflection.MethodInfo" /> object represents the definition of a generic method; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.MemberType">
      <summary>Gets a <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a method.</summary>
      <value>A <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a method.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.MetadataToken">
      <summary>Gets a value that identifies a metadata element.</summary>
      <value>A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module" />, uniquely identifies a metadata element.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.MethodHandle">
      <summary>Gets a handle to the internal metadata representation of a method.</summary>
      <value>A <see cref="T:System.RuntimeMethodHandle" /> object.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.Module">
      <summary>Gets the module in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</summary>
      <value>The <see cref="T:System.Reflection.Module" /> in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.Name">
      <summary>Gets the name of the current member.</summary>
      <value>A <see cref="T:System.String" /> containing the name of this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.ReflectedType">
      <summary>Gets the class object that was used to obtain this instance of MemberInfo.</summary>
      <value>The Type object through which this MemberInfo object was obtained.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.ReturnParameter">
      <summary>Gets a <see cref="T:System.Reflection.ParameterInfo" /> object that contains information about the return type of the method, such as whether the return type has custom modifiers.</summary>
      <value>A <see cref="T:System.Reflection.ParameterInfo" /> object that contains information about the return type.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.ReturnType">
      <summary>Gets the return type of this method.</summary>
      <value>The return type of this method.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedMethodInfo.ReturnTypeCustomAttributes">
      <summary>Gets the custom attributes for the return type.</summary>
      <value>An ICustomAttributeProvider object representing the custom attributes for the return type.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetBaseDefinition">
      <summary>When overridden in a derived class, returns the MethodInfo object for the method on the direct or indirect base class in which the method represented by this instance was first declared.</summary>
      <returns>A MethodInfo object for the first implementation of this method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetCustomAttributes(System.Boolean)">
      <summary>When overridden in a derived class, returns an array containing all the custom attributes.</summary>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type" />.</summary>
      <param name="attributeType">The type of attribute to search for. Only attributes that are assignable to this type are returned.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetGenericArguments">
      <summary>Returns an array of <see cref="T:System.Type" /> objects that represent the type arguments of a generic method or the type parameters of a generic method definition.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that represent the type arguments of a generic method or the type parameters of a generic method definition. Returns an empty array if the current method is not a generic method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetGenericMethodDefinition">
      <summary>Returns a <see cref="T:System.Reflection.MethodInfo" /> object that represents a generic method definition from which the current method can be constructed.</summary>
      <returns>A <see cref="T:System.Reflection.MethodInfo" /> object representing a generic method definition from which the current method can be constructed.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetMethodBody">
      <summary>When overridden in a derived class, gets a <see cref="T:System.Reflection.MethodBody" /> object that provides access to the MSIL stream, local variables, and exceptions for the current method.</summary>
      <returns>A <see cref="T:System.Reflection.MethodBody" /> object that provides access to the MSIL stream, local variables, and exceptions for the current method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetMethodImplementationFlags">
      <summary>When overridden in a derived class, returns the <see cref="T:System.Reflection.MethodImplAttributes" /> flags.</summary>
      <returns>The MethodImplAttributes flags.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.GetParameters">
      <summary>When overridden in a derived class, gets the parameters of the specified method or constructor.</summary>
      <returns>An array of type ParameterInfo containing information that matches the signature of the method (or constructor) reflected by this MethodBase instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)">
      <summary>When overridden in a derived class, invokes the reflected method or constructor with the given parameters.</summary>
      <param name="obj">The object on which to invoke the method or constructor. If a method is static, this argument is ignored. If a constructor is static, this argument must be null or an instance of the class that defines the constructor.</param>
      <param name="invokeAttr">A bitmask that is a combination of 0 or more bit flags from <see cref="T:System.Reflection.BindingFlags" />. If binder is null, this parameter is assigned the value <see cref="F:System.Reflection.BindingFlags.Default" />; thus, whatever you pass in is ignored.</param>
      <param name="binder">An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is null, the default binder is used.</param>
      <param name="parameters">An argument list for the invoked method or constructor. This is an array of objects with the same number, order, and type as the parameters of the method or constructor to be invoked. If there are no parameters, this should be null.If the method or constructor represented by this instance takes a ByRef parameter, there is no special attribute required for that parameter in order to invoke the method or constructor using this function. Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. For reference-type elements, this value is null. For value-type elements, this value is 0, 0.0, or false, depending on the specific element type.</param>
      <param name="culture">An instance of CultureInfo used to govern the coercion of types. If this is null, the CultureInfo for the current thread is used. (This is necessary to convert a String that represents 1000 to a Double value, for example, since 1000 is represented differently by different cultures.)</param>
      <returns>An Object containing the return value of the invoked method, or null in the case of a constructor, or null if the method's return type is void. Before calling the method or constructor, Invoke checks to see if the user has access permission and verify that the parameters are valid.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.IsDefined(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member.</summary>
      <param name="attributeType">The Type object to which the custom attributes are applied.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>true if one or more instance of attributeType is applied to this member; otherwise false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.MakeGenericMethod(System.Type[])">
      <summary>Substitutes the elements of an array of types for the type parameters of the current generic method definition, and returns a <see cref="T:System.Reflection.MethodInfo" /> object representing the resulting constructed method.</summary>
      <param name="typeArguments">An array of types to be substituted for the type parameters of the current generic method definition.</param>
      <returns>A <see cref="T:System.Reflection.MethodInfo" /> object that represents the constructed method formed by substituting the elements of typeArguments for the type parameters of the current generic method definition.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedMethodInfo.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.UnresolvedParameterInfo">
      <summary>Represents a <see cref="T:System.Reflection.ParameterInfo" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.IParameterInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.Attributes">
      <summary>Gets the attributes for this parameter.</summary>
      <value>A ParameterAttributes object representing the attributes for this parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.DefaultValue">
      <summary>Gets a value indicating the default value if the parameter has a default value.</summary>
      <value>The default value of the parameter, or <see cref="F:System.DBNull.Value" /> if the parameter has no default value.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.Member">
      <summary>Gets a value indicating the member in which the parameter is implemented.</summary>
      <value>A MemberInfo object.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.Name">
      <summary>Gets the name of the parameter.</summary>
      <value>A String containing the simple name of this parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.ParameterType">
      <summary>Gets the Type of this parameter.</summary>
      <value>The Type object that represents the Type of this parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.Position">
      <summary>Gets the signature position for the parameter.</summary>
      <value>An integer representing the position this parameter occupies in the parameter list.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedParameterInfo.RawDefaultValue">
      <summary>Gets a value indicating the default value if the parameter has a default value.</summary>
      <value>The default value of the parameter, or <see cref="F:System.DBNull.Value" /> if the parameter has no default value.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.GetCustomAttributes(System.Boolean)">
      <summary>Gets all the custom attributes defined on this parameter.</summary>
      <param name="inherit">This argument is ignored for objects of this type.</param>
      <returns>An array of type Object containing all the custom attributes defined on this parameter.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>Gets the custom attributes of the specified type defined on this parameter.</summary>
      <param name="attributeType">The custom attributes identified by type.</param>
      <param name="inherit">This argument is ignored for objects of this type.</param>
      <returns>An array of type Object containing the custom attributes of the specified type.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.GetOptionalCustomModifiers">
      <summary>Gets the optional custom modifiers of the parameter.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that identify the optional custom modifiers of the current parameter, such as <see cref="T:System.Runtime.CompilerServices.IsConst" /> or <see cref="T:System.Runtime.CompilerServices.IsImplicitlyDeferenced" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.GetRequiredCustomModifiers">
      <summary>Gets the required custom modifiers of the parameter.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that identify the required custom modifiers of the current parameter, such as <see cref="T:System.Runtime.CompilerServices.IsConst" /> or <see cref="T:System.Runtime.CompilerServices.IsImplicitlyDeferenced" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.IsDefined(System.Type,System.Boolean)">
      <summary>Determines if the custom attribute of the specified type is defined on this member.</summary>
      <param name="attributeType">The Type object to search for.</param>
      <param name="inherit">This argument is ignored for objects of this type.</param>
      <returns>true if one or more instance of attributeType is defined on this member; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedParameterInfo.ToString">
      <summary>Gets the parameter type and name represented as a string.</summary>
      <returns>A string containing the type and the name of the parameter.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.UnresolvedPropertyInfo">
      <summary>Represents a <see cref="T:System.Reflection.PropertyInfo" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.IPropertyInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.Attributes">
      <summary>Gets the attributes for this property.</summary>
      <value>Attributes of this property.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.CanRead">
      <summary>Gets a value indicating whether the property can be read.</summary>
      <value>true if this property can be read; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.CanWrite">
      <summary>Gets a value indicating whether the property can be written to.</summary>
      <value>true if this property can be written to; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.DeclaringType">
      <summary>Gets the class that declares this member.</summary>
      <value>The Type object for the class that declares this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.MemberType">
      <summary>Gets a <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a property.</summary>
      <value>A <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a property.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.MetadataToken">
      <summary>Gets a value that identifies a metadata element.</summary>
      <value>A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module" />, uniquely identifies a metadata element.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.Module">
      <summary>Gets the module in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</summary>
      <value>The <see cref="T:System.Reflection.Module" /> in which the type that declares the member represented by the current <see cref="T:System.Reflection.MemberInfo" /> is defined.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.Name">
      <summary>Gets the name of the current member.</summary>
      <value>A <see cref="T:System.String" /> containing the name of this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.PropertyType">
      <summary>Gets the type of this property.</summary>
      <value>The type of this property.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedPropertyInfo.ReflectedType">
      <summary>Gets the class object that was used to obtain this instance of MemberInfo.</summary>
      <value>The Type object through which this MemberInfo object was obtained.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetAccessors(System.Boolean)">
      <summary>Returns an array whose elements reflect the public and, if specified, non-public get, set, and other accessors of the property reflected by the current instance.</summary>
      <param name="nonPublic">Indicates whether non-public methods should be returned in the MethodInfo array. true if non-public methods are to be included; otherwise, false.</param>
      <returns>An array of <see cref="T:System.Reflection.MethodInfo" /> objects whose elements reflect the get, set, and other accessors of the property reflected by the current instance. If nonPublic is true, this array contains public and non-public get, set, and other accessors. If nonPublic is false, this array contains only public get, set, and other accessors. If no accessors with the specified visibility are found, this method returns an array with zero (0) elements.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetConstantValue">
      <summary>Returns a literal value associated with the property by a compiler.</summary>
      <returns>An <see cref="T:System.Object" /> that contains the literal value associated with the property. If the literal value is a class type with an element value of zero, the return value is null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetCustomAttributes(System.Boolean)">
      <summary>When overridden in a derived class, returns an array containing all the custom attributes.</summary>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type" />.</summary>
      <param name="attributeType">The type of attribute to search for. Only attributes that are assignable to this type are returned.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetGetMethod(System.Boolean)">
      <summary>When overridden in a derived class, returns the public or non-public get accessor for this property.</summary>
      <param name="nonPublic">Indicates whether a non-public get accessor should be returned. true if a non-public accessor is to be returned; otherwise, false.</param>
      <returns>A MethodInfo object representing the get accessor for this property, if nonPublic is true. Returns null if nonPublic is false and the get accessor is non-public, or if nonPublic is true but no get accessors exist.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetIndexParameters">
      <summary>When overridden in a derived class, returns an array of all the index parameters for the property.</summary>
      <returns>An array of type ParameterInfo containing the parameters for the indexes.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetOptionalCustomModifiers">
      <summary>Returns an array of types representing the optional custom modifiers of the property.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that identify the optional custom modifiers of the current property, such as <see cref="T:System.Runtime.CompilerServices.IsConst" /> or <see cref="T:System.Runtime.CompilerServices.IsImplicitlyDeferenced" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetRawConstantValue">
      <summary>Returns a literal value associated with the property by a compiler.</summary>
      <returns>An <see cref="T:System.Object" /> that contains the literal value associated with the property. If the literal value is a class type with an element value of zero, the return value is null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetRequiredCustomModifiers">
      <summary>Returns an array of types representing the required custom modifiers of the property.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that identify the required custom modifiers of the current property, such as <see cref="T:System.Runtime.CompilerServices.IsConst" /> or <see cref="T:System.Runtime.CompilerServices.IsImplicitlyDeferenced" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetSetMethod(System.Boolean)">
      <summary>When overridden in a derived class, returns the set accessor for this property.</summary>
      <param name="nonPublic">Indicates whether the accessor should be returned if it is non-public. true if a non-public accessor is to be returned; otherwise, false.</param>
      <returns>Value Condition A <see cref="T:System.Reflection.MethodInfo" /> object representing the Set method for this property. The set accessor is public.-or- nonPublic is true and the set accessor is non-public. nullnonPublic is true, but the property is read-only.-or- nonPublic is false and the set accessor is non-public.-or- There is no set accessor.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetValue(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)">
      <summary>When overridden in a derived class, returns the value of a property having the specified binding, index, and CultureInfo.</summary>
      <param name="obj">The object whose property value will be returned.</param>
      <param name="invokeAttr">The invocation attribute. This must be a bit flag from BindingFlags : InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty, or SetProperty. A suitable invocation attribute must be specified. If a static member is to be invoked, the Static flag of BindingFlags must be set.</param>
      <param name="binder">An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is null, the default binder is used.</param>
      <param name="index">Optional index values for indexed properties. This value should be null for non-indexed properties.</param>
      <param name="culture">The CultureInfo object that represents the culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the CultureInfo.Parent method will be called successively in search of a match. If this value is null, the CultureInfo is obtained from the CultureInfo.CurrentUICulture property.</param>
      <returns>The property value for obj.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.GetValue(System.Object,System.Object[])">
      <summary>Returns the value of the property with optional index values for indexed properties.</summary>
      <param name="obj">The object whose property value will be returned.</param>
      <param name="index">Optional index values for indexed properties. This value should be null for non-indexed properties.</param>
      <returns>The property value for the obj parameter.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.IsDefined(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member.</summary>
      <param name="attributeType">The Type object to which the custom attributes are applied.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>true if one or more instance of attributeType is applied to this member; otherwise false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)">
      <summary>When overridden in a derived class, sets the property value for the given object to the given value.</summary>
      <param name="obj">The object whose property value will be returned.</param>
      <param name="value">The new value for this property.</param>
      <param name="invokeAttr">The invocation attribute. This must be a bit flag from <see cref="T:System.Reflection.BindingFlags" /> : InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty, or SetProperty. A suitable invocation attribute must be specified. If a static member is to be invoked, the Static flag of BindingFlags must be set.</param>
      <param name="binder">An object that enables the binding, coercion of argument types, invocation of members, and retrieval of <see cref="T:System.Reflection.MemberInfo" /> objects through reflection. If binder is null, the default binder is used.</param>
      <param name="index">Optional index values for indexed properties. This value should be null for non-indexed properties.</param>
      <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> object that represents the culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the CultureInfo.Parent method will be called successively in search of a match. If this value is null, the CultureInfo is obtained from the CultureInfo.CurrentUICulture property.</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.SetValue(System.Object,System.Object,System.Object[])">
      <summary>Sets the value of the property with optional index values for index properties.</summary>
      <param name="obj">The object whose property value will be set.</param>
      <param name="value">The new value for this property.</param>
      <param name="index">Optional index values for indexed properties. This value should be null for non-indexed properties.</param>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedPropertyInfo.ToString">
      <summary>Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</summary>
      <returns>A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.UnresolvedType">
      <summary>Represents a <see cref="T:System.Type" /> whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.ITypeInfo" /> wrapper. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.Assembly">
      <summary>Gets the <see cref="T:System.Reflection.Assembly" /> in which the type is declared. For generic types, gets the <see cref="T:System.Reflection.Assembly" nolink="true" /> in which the generic type is defined.</summary>
      <value>An <see cref="T:System.Reflection.Assembly" /> instance that describes the assembly containing the current type. For generic types, the instance describes the assembly that contains the generic type definition, not the assembly that creates and uses a particular constructed type.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.AssemblyQualifiedName">
      <summary>Gets the assembly-qualified name of the <see cref="T:System.Type" />, which includes the name of the assembly from which the <see cref="T:System.Type" nolink="true" /> was loaded.</summary>
      <value>The assembly-qualified name of the <see cref="T:System.Type" />, which includes the name of the assembly from which the <see cref="T:System.Type" nolink="true" /> was loaded, or null if the current instance represents a generic type parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.BaseType">
      <summary>Gets the type from which the current <see cref="T:System.Type" /> directly inherits.</summary>
      <value>The <see cref="T:System.Type" /> from which the current <see cref="T:System.Type" nolink="true" /> directly inherits, or null if the current Type represents the <see cref="T:System.Object" /> class.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.ContainsGenericParameters">
      <summary>Gets a value indicating whether the current <see cref="T:System.Type" /> object has type parameters that have not been replaced by specific types.</summary>
      <value>true if the <see cref="T:System.Type" /> object has type parameters for which specific types have not been supplied; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.DeclaringMethod">
      <summary>Gets a <see cref="T:System.Reflection.MethodBase" /> that represents the declaring method, if the current <see cref="T:System.Type" /> represents a type parameter of a generic method.</summary>
      <value>If the current <see cref="T:System.Type" /> represents a type parameter of a generic method, a <see cref="T:System.Reflection.MethodBase" /> that represents declaring method; otherwise, null.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.DeclaringType">
      <summary>Gets the class that declares this member.</summary>
      <value>The Type object for the class that declares this member. If the type is a nested type, this property returns the enclosing type.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.FullName">
      <summary>Gets the fully qualified name of the <see cref="T:System.Type" />, including the namespace of the <see cref="T:System.Type" nolink="true" /> but not the assembly.</summary>
      <value>A string containing the fully qualified name of the <see cref="T:System.Type" />, including the namespace of the <see cref="T:System.Type" nolink="true" /> but not the assembly, or null if the current instance represents a generic type parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.GUID">
      <summary>Gets the GUID associated with the <see cref="T:System.Type" />.</summary>
      <value>The GUID associated with the <see cref="T:System.Type" />.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.GenericParameterAttributes">
      <summary>Gets a combination of <see cref="T:System.Reflection.GenericParameterAttributes" /> flags that describe the covariance and special constraints of the current generic type parameter.</summary>
      <value>A bitwise combination of <see cref="T:System.Reflection.GenericParameterAttributes" /> values that describes the covariance and special constraints of the current generic type parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.GenericParameterPosition">
      <summary>Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter, when the <see cref="T:System.Type" /> object represents a type parameter of a generic type or a generic method.</summary>
      <value>The position of a type parameter in the type parameter list of the generic type or method that defines the parameter. Position numbers begin at 0.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.IsGenericParameter">
      <summary>Gets a value indicating whether the current <see cref="T:System.Type" /> represents a type parameter in the definition of a generic type or method.</summary>
      <value>true if the <see cref="T:System.Type" /> object represents a type parameter of a generic type definition or generic method definition; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.IsGenericType">
      <summary>Gets a value indicating whether the current type is a generic type.</summary>
      <value>true if the current type is a generic type; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.IsGenericTypeDefinition">
      <summary>Gets a value indicating whether the current <see cref="T:System.Type" /> represents a generic type definition, from which other generic types can be constructed.</summary>
      <value>true if the <see cref="T:System.Type" /> object represents a generic type definition; otherwise, false.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.MemberType">
      <summary>Gets a <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a type or a nested type.</summary>
      <value>A <see cref="T:System.Reflection.MemberTypes" /> value indicating that this member is a type or a nested type.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.MetadataToken">
      <summary>Gets a value that identifies a metadata element.</summary>
      <value>A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module" />, uniquely identifies a metadata element.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.Module">
      <summary>Gets the module (the DLL) in which the current <see cref="T:System.Type" /> is defined.</summary>
      <value>The name of the module in which the current <see cref="T:System.Type" /> is defined.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.Name">
      <summary>Gets the name of the current member.</summary>
      <value>A <see cref="T:System.String" /> containing the name of this member.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.Namespace">
      <summary>Gets the namespace of the <see cref="T:System.Type" />.</summary>
      <value>The namespace of the <see cref="T:System.Type" />, or null if the current instance represents a generic parameter.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.ReflectedType">
      <summary>Gets the class object that was used to obtain this member.</summary>
      <value>The Type object through which this MemberInfo object was obtained.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.StructLayoutAttribute">
      <summary>Gets a <see cref="T:System.Runtime.InteropServices.StructLayoutAttribute" /> that describes the layout of the current type.</summary>
      <value>Gets a <see cref="T:System.Runtime.InteropServices.StructLayoutAttribute" /> that describes the gross layout features of the current type.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.TypeHandle">
      <summary>Gets the handle for the current <see cref="T:System.Type" />.</summary>
      <value>The handle for the current <see cref="T:System.Type" />.</value>
    </member>
    <member name="P:Gallio.Reflection.Impl.UnresolvedType.UnderlyingSystemType">
      <summary>Indicates the type provided by the common language runtime that represents this type.</summary>
      <value>The underlying system type for the <see cref="T:System.Type" />.</value>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.Equals(System.Object)">
      <summary>Determines if the underlying system type of the current <see cref="T:System.Type" /> is the same as the underlying system type of the specified <see cref="T:System.Object" />.</summary>
      <param name="o">The <see cref="T:System.Object" /> whose underlying system type is to be compared with the underlying system type of the current <see cref="T:System.Type" />.</param>
      <returns>true if the underlying system type of o is the same as the underlying system type of the current <see cref="T:System.Type" />; otherwise, false. This method also returns false if the object specified by the o parameter is not a Type.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetArrayRank">
      <summary>Gets the number of dimensions in an <see cref="T:System.Array" />.</summary>
      <returns>An <see cref="T:System.Int32" /> containing the number of dimensions in the current Type.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetConstructors(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the constructors defined for the current <see cref="T:System.Type" />, using the specified BindingFlags.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Reflection.ConstructorInfo" /> objects representing all constructors defined for the current <see cref="T:System.Type" /> that match the specified binding constraints, including the type initializer if it is defined. Returns an empty array of type <see cref="T:System.Reflection.ConstructorInfo" nolink="true" /> if no constructors are defined for the current <see cref="T:System.Type" nolink="true" />, if none of the defined constructors match the binding constraints, or if the current <see cref="T:System.Type" nolink="true" /> represents a type parameter in the definition of a generic type or generic method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetCustomAttributes(System.Boolean)">
      <summary>When overridden in a derived class, returns an array containing all the custom attributes.</summary>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetCustomAttributes(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type" />.</summary>
      <param name="attributeType">The type of attribute to search for. Only attributes that are assignable to this type are returned.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetDefaultMembers">
      <summary>Searches for the members defined for the current <see cref="T:System.Type" /> whose <see cref="T:System.Reflection.DefaultMemberAttribute" /> is set.</summary>
      <returns>An array of <see cref="T:System.Reflection.MemberInfo" /> objects representing all default members of the current <see cref="T:System.Type" />.-or- An empty array of type <see cref="T:System.Reflection.MemberInfo" nolink="true" />, if the current <see cref="T:System.Type" nolink="true" /> does not have default members.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetElementType">
      <summary>When overridden in a derived class, returns the <see cref="T:System.Type" /> of the object encompassed or referred to by the current array, pointer or reference type.</summary>
      <returns>The <see cref="T:System.Type" /> of the object encompassed or referred to by the current array, pointer, or reference type, or null if the current <see cref="T:System.Type" nolink="true" /> is not an array or a pointer, or is not passed by reference, or represents a generic type or a type parameter in the definition of a generic type or generic method.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetEvent(System.String,System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, returns the <see cref="T:System.Reflection.EventInfo" /> object representing the specified event, using the specified binding constraints.</summary>
      <param name="name">The <see cref="T:System.String" /> containing the name of an event which is declared or inherited by the current <see cref="T:System.Type" />.</param>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>The <see cref="T:System.Reflection.EventInfo" /> object representing the specified event which is declared or inherited by the current <see cref="T:System.Type" />, if found; otherwise, null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetEvents(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for events that are declared or inherited by the current <see cref="T:System.Type" />, using the specified binding constraints.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Reflection.EventInfo" /> objects representing all events which are declared or inherited by the current <see cref="T:System.Type" /> that match the specified binding constraints.-or- An empty array of type <see cref="T:System.Reflection.EventInfo" nolink="true" />, if the current <see cref="T:System.Type" nolink="true" /> does not have events, or if none of the events match the binding constraints.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetField(System.String,System.Reflection.BindingFlags)">
      <summary>Searches for the specified field, using the specified binding constraints.</summary>
      <param name="name">The <see cref="T:System.String" /> containing the name of the data field to get.</param>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>A <see cref="T:System.Reflection.FieldInfo" /> object representing the field that matches the specified requirements, if found; otherwise, null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetFields(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the fields defined for the current <see cref="T:System.Type" />, using the specified binding constraints.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Reflection.FieldInfo" /> objects representing all fields defined for the current <see cref="T:System.Type" /> that match the specified binding constraints.-or- An empty array of type <see cref="T:System.Reflection.FieldInfo" nolink="true" />, if no fields are defined for the current <see cref="T:System.Type" nolink="true" />, or if none of the defined fields match the binding constraints.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetGenericArguments">
      <summary>Returns an array of <see cref="T:System.Type" /> objects that represent the type arguments of a generic type or the type parameters of a generic type definition.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that represent the type arguments of a generic type. Returns an empty array if the current type is not a generic type.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetGenericParameterConstraints">
      <summary>Returns an array of <see cref="T:System.Type" /> objects that represent the constraints on the current generic type parameter.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects that represent the constraints on the current generic type parameter.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetGenericTypeDefinition">
      <summary>Returns a <see cref="T:System.Type" /> object that represents a generic type definition from which the current generic type can be constructed.</summary>
      <returns>A <see cref="T:System.Type" /> object representing a generic type from which the current type can be constructed.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>An <see cref="T:System.Int32" /> containing the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetInterface(System.String,System.Boolean)">
      <summary>When overridden in a derived class, searches for the specified interface, specifying whether to do a case-sensitive search.</summary>
      <param name="name">The <see cref="T:System.String" /> containing the name of the interface to get. For generic interfaces, this is the mangled name.</param>
      <param name="ignoreCase">true to perform a case-insensitive search for name.-or- false to perform a case-sensitive search for name.</param>
      <returns>A <see cref="T:System.Type" /> object representing the interface with the specified name, implemented or inherited by the current <see cref="T:System.Type" nolink="true" />, if found; otherwise, null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetInterfaceMap(System.Type)">
      <summary>Returns an interface mapping for the specified interface type.</summary>
      <param name="interfaceType">The <see cref="T:System.Type" /> of the interface of which to retrieve a mapping.</param>
      <returns>An <see cref="T:System.Reflection.InterfaceMapping" /> object representing the interface mapping for interfaceType.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetInterfaces">
      <summary>When overridden in a derived class, gets all the interfaces implemented or inherited by the current <see cref="T:System.Type" />.</summary>
      <returns>An array of <see cref="T:System.Type" /> objects representing all the interfaces implemented or inherited by the current <see cref="T:System.Type" nolink="true" />.-or- An empty array of type <see cref="T:System.Type" nolink="true" />, if no interfaces are implemented or inherited by the current <see cref="T:System.Type" nolink="true" />.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags)">
      <summary>Searches for the specified members of the specified member type, using the specified binding constraints.</summary>
      <param name="name">The <see cref="T:System.String" /> containing the name of the members to get.</param>
      <param name="type">The <see cref="T:System.Reflection.MemberTypes" /> value to search for.</param>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return an empty array.</param>
      <returns>An array of <see cref="T:System.Reflection.MemberInfo" /> objects representing the public members with the specified name, if found; otherwise, an empty array.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetMembers(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the members defined for the current <see cref="T:System.Type" />, using the specified binding constraints.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Reflection.MemberInfo" /> objects representing all members defined for the current <see cref="T:System.Type" /> that match the specified binding constraints.-or- An empty array of type <see cref="T:System.Reflection.MemberInfo" nolink="true" />, if no members are defined for the current <see cref="T:System.Type" nolink="true" />, or if none of the defined members match the binding constraints.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetMethods(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the methods defined for the current <see cref="T:System.Type" />, using the specified binding constraints.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Reflection.MethodInfo" /> objects representing all methods defined for the current <see cref="T:System.Type" /> that match the specified binding constraints.-or- An empty array of type <see cref="T:System.Reflection.MethodInfo" nolink="true" />, if no methods are defined for the current <see cref="T:System.Type" nolink="true" />, or if none of the defined methods match the binding constraints.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetNestedType(System.String,System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.</summary>
      <param name="name">The string containing the name of the nested type to get.</param>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>A <see cref="T:System.Type" /> object representing the nested type that matches the specified requirements, if found; otherwise, null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetNestedTypes(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the types nested within the current <see cref="T:System.Type" />, using the specified binding constraints.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Type" /> objects representing all the types nested within the current <see cref="T:System.Type" nolink="true" /> that match the specified binding constraints.-or- An empty array of type <see cref="T:System.Type" nolink="true" />, if no types are nested within the current <see cref="T:System.Type" nolink="true" />, or if none of the nested types match the binding constraints.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.GetProperties(System.Reflection.BindingFlags)">
      <summary>When overridden in a derived class, searches for the properties of the current <see cref="T:System.Type" />, using the specified binding constraints.</summary>
      <param name="bindingAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted.-or- Zero, to return null.</param>
      <returns>An array of <see cref="T:System.Reflection.PropertyInfo" /> objects representing all properties of the current <see cref="T:System.Type" /> that match the specified binding constraints.-or- An empty array of type <see cref="T:System.Reflection.PropertyInfo" nolink="true" />, if the current <see cref="T:System.Type" nolink="true" /> does not have properties, or if none of the properties match the binding constraints.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])">
      <summary>When overridden in a derived class, invokes the specified member, using the specified binding constraints and matching the specified argument list, modifiers and culture.</summary>
      <param name="name">The <see cref="T:System.String" /> containing the name of the constructor, method, property, or field member to invoke.-or- An empty string ("") to invoke the default member. -or-For IDispatch members, a string representing the DispID, for example "[DispID=3]".</param>
      <param name="invokeAttr">A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags" /> that specify how the search is conducted. The access can be one of the BindingFlags such as Public, NonPublic, Private, InvokeMethod, GetField, and so on. The type of lookup need not be specified. If the type of lookup is omitted, BindingFlags.Public | BindingFlags.Instance will apply.</param>
      <param name="binder">A <see cref="T:System.Reflection.Binder" /> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.-or- null, to use the <see cref="P:System.Type.DefaultBinder" />.</param>
      <param name="target">The <see cref="T:System.Object" /> on which to invoke the specified member.</param>
      <param name="args">An array containing the arguments to pass to the member to invoke.</param>
      <param name="modifiers">An array of <see cref="T:System.Reflection.ParameterModifier" /> objects representing the attributes associated with the corresponding element in the args array. A parameter's associated attributes are stored in the member's signature. The default binder does not process this parameter.</param>
      <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> object representing the globalization locale to use, which may be necessary for locale-specific conversions, such as converting a numeric String to a Double.-or- null to use the current thread's <see cref="T:System.Globalization.CultureInfo" nolink="true" />.</param>
      <param name="namedParameters">An array containing the names of the parameters to which the values in the args array are passed.</param>
      <returns>An <see cref="T:System.Object" /> representing the return value of the invoked member.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.IsAssignableFrom(System.Type)">
      <summary>Determines whether an instance of the current <see cref="T:System.Type" /> can be assigned from an instance of the specified Type.</summary>
      <param name="c">The Type to compare with the current Type.</param>
      <returns>true if c and the current Type represent the same type, or if the current Type is in the inheritance hierarchy of c, or if the current Type is an interface that c implements, or if c is a generic type parameter and the current Type represents one of the constraints of c. false if none of these conditions are true, or if c is null.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.IsDefined(System.Type,System.Boolean)">
      <summary>When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member.</summary>
      <param name="attributeType">The Type object to which the custom attributes are applied.</param>
      <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
      <returns>true if one or more instance of attributeType is applied to this member; otherwise false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.IsInstanceOfType(System.Object)">
      <summary>Determines whether the specified object is an instance of the current <see cref="T:System.Type" />.</summary>
      <param name="o">The object to compare with the current Type.</param>
      <returns>true if the current Type is in the inheritance hierarchy of the object represented by o, or if the current Type is an interface that o supports. false if neither of these conditions is the case, or if o is null, or if the current Type is an open generic type (that is, <see cref="P:System.Type.ContainsGenericParameters" /> returns true).</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.IsSubclassOf(System.Type)">
      <summary>Determines whether the class represented by the current <see cref="T:System.Type" /> derives from the class represented by the specified <see cref="T:System.Type" nolink="true" />.</summary>
      <param name="c">The Type to compare with the current Type.</param>
      <returns>true if the Type represented by the c parameter and the current Type represent classes, and the class represented by the current Type derives from the class represented by c; otherwise, false. This method also returns false if c and the current Type represent the same class.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.MakeArrayType">
      <summary>Returns a <see cref="T:System.Type" /> object representing a one-dimensional array of the current type, with a lower bound of zero.</summary>
      <returns>A <see cref="T:System.Type" /> object representing a one-dimensional array of the current type, with a lower bound of zero.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.MakeArrayType(System.Int32)">
      <summary>Returns a <see cref="T:System.Type" /> object representing an array of the current type, with the specified number of dimensions.</summary>
      <param name="rank">The number of dimensions for the array.</param>
      <returns>A <see cref="T:System.Type" /> object representing an array of the current type, with the specified number of dimensions.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.MakeByRefType">
      <summary>Returns a <see cref="T:System.Type" /> object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic).</summary>
      <returns>A <see cref="T:System.Type" /> object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic).</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.MakeGenericType(System.Type[])">
      <summary>Substitutes the elements of an array of types for the type parameters of the current generic type definition and returns a <see cref="T:System.Type" /> object representing the resulting constructed type.</summary>
      <param name="typeArguments">An array of types to be substituted for the type parameters of the current generic type.</param>
      <returns>A <see cref="T:System.Type" /> representing the constructed type formed by substituting the elements of typeArguments for the type parameters of the current generic type.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.MakePointerType">
      <summary>Returns a <see cref="T:System.Type" /> object that represents a pointer to the current type.</summary>
      <returns>A <see cref="T:System.Type" /> object that represents a pointer to the current type.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.UnresolvedType.ToString">
      <summary>Returns a String representing the name of the current Type.</summary>
      <returns>A <see cref="T:System.String" /> representing the name of the current <see cref="T:System.Type" />.</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.XmlDocumentationUtils">
      <summary>Helpers for working with <see cref="T:Gallio.Reflection.Impl.IXmlDocumentationResolver" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.XmlDocumentationUtils.Resolver">
      <summary>Gets the XML documentation resolver.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.XmlDocumentationUtils.FormatId(System.Reflection.MemberInfo)">
      <summary>Gets the XML documentation id of a member.</summary>
      <param name="member">The member</param>
      <returns>The XML documentation id of the member</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="member" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.XmlDocumentationUtils.GetXmlDocumentation(System.Reflection.MemberInfo)">
      <summary>Gets the XML documentation for a member.</summary>
      <param name="member">The member</param>
      <returns>The XML documentation for the member, or null if none available</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="member" /> is null</exception>
    </member>
    <member name="T:Gallio.Reflection.Impl.StaticTypeSubstitution">
      <summary>A type substitution specifies how generic parameters are replaced by other types. It is used by implementors of <see cref="T:Gallio.Reflection.Impl.StaticReflectionPolicy" /> when returning types that may be represented as generic parameters.</summary>
    </member>
    <member name="F:Gallio.Reflection.Impl.StaticTypeSubstitution.Empty">
      <summary>Gets the empty type substitution. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.StaticTypeSubstitution.IsEmpty">
      <summary>Returns true if the type substitution does not contain any replacements.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.Apply(Gallio.Reflection.Impl.StaticTypeWrapper)">
      <summary>Applies a type substitution to the specified type.</summary>
      <param name="type">The type to substitute</param>
      <returns>The substituted type</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.Apply(Gallio.Reflection.Impl.StaticGenericParameterWrapper)">
      <summary>Applies a type substitution to the specified generic parameter.</summary>
      <param name="type">The generic parameter to substitute</param>
      <returns>The substituted type</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.ApplyAll``1(System.Collections.Generic.IList{``0})">
      <summary>Applies a type substitution to the specified list of types.</summary>
      <param name="types">The types to substitute</param>
      <returns>The substituted types</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="types" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.Compose(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Returns a new substitution formed by composing this substitution with the specified one. That is to say, each replacement type in this substitution is replaced as described in the specified substitution.</summary>
      <param name="substitution">The substitution to compose</param>
      <returns>The new substitution</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.DoesNotContainAny(System.Collections.Generic.IList{Gallio.Reflection.Impl.StaticGenericParameterWrapper})">
      <summary>Returns true if this substitution does not contain any of the specified generic parameters.</summary>
      <param name="genericParameters">The generic parameters</param>
      <returns>True if none of the generic parameters are in the substitution</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="genericParameters" /> is null</exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.Equals(Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.Extend(System.Collections.Generic.IList{Gallio.Reflection.Impl.StaticGenericParameterWrapper},System.Collections.Generic.IList{Gallio.Reflection.ITypeInfo})">
      <summary>Returns a new substitution with the specified generic parameters replaced by their respective generic arguments.</summary>
      <param name="genericParameters">The generic parameters</param>
      <param name="genericArguments">The generic arguments</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="genericParameters" /> or <paramref name="genericArguments" /> is null or contain nulls</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="genericArguments" /> does not have the same number of elements as <paramref name="genericParameters" /></exception>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.op_Equality(Gallio.Reflection.Impl.StaticTypeSubstitution,Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Compares two static type substitutions for equality.</summary>
      <param name="a">The first substitution</param>
      <param name="b">The second substitution</param>
      <returns>True if the substitutions are equal</returns>
    </member>
    <member name="M:Gallio.Reflection.Impl.StaticTypeSubstitution.op_Inequality(Gallio.Reflection.Impl.StaticTypeSubstitution,Gallio.Reflection.Impl.StaticTypeSubstitution)">
      <summary>Compares two static type substitutions for inequality.</summary>
      <param name="a">The first substitution</param>
      <param name="b">The second substitution</param>
      <returns>True if the substitutions are equal</returns>
    </member>
    <member name="T:Gallio.Reflection.Impl.IDebugSymbolResolver">
      <summary>Resolves debug symbols associated with members.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.IDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
      <summary>Gets the location of a source file that contains the declaration of a method, or null if not available.</summary>
      <param name="assemblyPath">The path of the assembly that contains the method</param>
      <param name="methodToken">The method token</param>
      <returns>The source code location, or null if unknown</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyPath" /> is null</exception>
    </member>
    <member name="T:Gallio.Reflection.Impl.IResolvableTypeInfo">
      <summary>This extension of <see cref="T:Gallio.Reflection.ITypeInfo" /> is provided to enable the resolution of a type with <see cref="M:Gallio.Reflection.Impl.ReflectorResolveUtils.ResolveType(Gallio.Reflection.Impl.IResolvableTypeInfo,System.Reflection.MethodInfo,System.Boolean)" />.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.IResolvableTypeInfo.Resolve(System.Reflection.MethodInfo,System.Boolean)">
      <summary>Resolves the wrapper to its native reflection target within the scope of the specified method.</summary>
      <param name="methodContext">The method that is currently in scope, or null if none. This parameter is used when resolving types that are part of the signature of a generic method so that generic method arguments can be handled correctly.</param>
      <param name="throwOnError">If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations</param>
      <returns>The native reflection target</returns>
      <exception cref="T:Gallio.Reflection.ReflectionWrapperResolveException">Thrown if the target cannot be resolved</exception>
    </member>
    <member name="T:Gallio.Reflection.Impl.IUnresolvedCodeElement">
      <summary>An interface implemented by special reflection types that represent code elements whose native definition could not be resolved so we fall back on the <see cref="T:Gallio.Reflection.ICodeElementInfo" /> wrapper instead.</summary>
    </member>
    <member name="P:Gallio.Reflection.Impl.IUnresolvedCodeElement.Adapter">
      <summary>Gets the underlying reflection adapter.</summary>
    </member>
    <member name="T:Gallio.Reflection.Impl.IXmlDocumentationResolver">
      <summary>Resolves members to XML documentation contents.</summary>
    </member>
    <member name="M:Gallio.Reflection.Impl.IXmlDocumentationResolver.GetXmlDocumentation(System.String,System.String)">
      <summary>Gets the XML documentation for a member in an assembly.</summary>
      <param name="assemblyPath">The assembly path</param>
      <param name="memberId">The XML documentation id of the member</param>
      <returns>The XML documentation for the member, or null if none available</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyPath" /> or <paramref name="memberId" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.DefaultTestRunner">
      <summary>An implementation of <see cref="T:Gallio.Runner.ITestRunner" /> that runs tests using a <see cref="T:Gallio.Runner.Drivers.ITestDriver" />. The driver is created when the first package is loaded and is disposed when the runner is disposed. Consequently the test driver may be reused for multiple test runs.</summary>
    </member>
    <member name="P:Gallio.Runner.DefaultTestRunner.Events">
      <summary>Gets the event dispatcher for the test runner.</summary>
    </member>
    <member name="P:Gallio.Runner.DefaultTestRunner.Logger">
      <summary>Gets the logger, or null if the test runner has not been initialized.</summary>
    </member>
    <member name="P:Gallio.Runner.DefaultTestRunner.TestRunnerOptions">
      <summary>Gets the test runner options, or null if the test runner has not been initialized.</summary>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunner.Dispose(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Disposes the test runner. Does nothing if already disposed or if not initialized.</summary>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunner.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunner.Initialize(Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Initializes the test runner.</summary>
      <param name="testRunnerOptions">The test runner options</param>
      <param name="logger">The logger</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunner.RegisterExtension(Gallio.Runner.Extensions.ITestRunnerExtension)">
      <summary>Registers a test runner extension.</summary>
      <param name="extension">The test runner extension to register</param>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunner.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores and runs tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExecutionOptions">The test execution options</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
    </member>
    <member name="T:Gallio.Runner.DefaultTestRunnerFactory">
      <summary>A <see cref="T:Gallio.Runner.ITestRunnerFactory" /> for <see cref="T:Gallio.Runner.DefaultTestRunner" /> using different implementations of <see cref="T:Gallio.Runner.Drivers.ITestDriver" />.</summary>
    </member>
    <member name="P:Gallio.Runner.DefaultTestRunnerFactory.Description">
      <summary>Gets the human-readable description of the component.</summary>
    </member>
    <member name="P:Gallio.Runner.DefaultTestRunnerFactory.Name">
      <summary>Gets the unique name of the component.</summary>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunnerFactory.CreateTestRunner">
      <summary>Creates a test runner.</summary>
      <returns>The test runner</returns>
    </member>
    <member name="T:Gallio.Runner.DefaultTestRunnerManager">
      <summary>The default implementation of <see cref="T:Gallio.Runner.ITestRunnerManager" />.</summary>
    </member>
    <member name="P:Gallio.Runner.DefaultTestRunnerManager.FactoryResolver">
      <summary>Gets a resolver for resolving registered <see cref="T:Gallio.Runner.ITestRunnerFactory" /> components by name.</summary>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunnerManager.CreateTestRunner(System.String)">
      <summary>Creates a test runner.</summary>
      <param name="factoryName">The name of the test runner factory, matched case-insensitively</param>
      <returns>The test runner</returns>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunnerManager.GetFactory(System.String)">
      <summary>Gets the factory by name, or null if none.</summary>
      <param name="factoryName">The name of the test runner factory, matched case-insensitively</param>
      <returns>The test runner</returns>
    </member>
    <member name="M:Gallio.Runner.DefaultTestRunnerManager.GetFactoryNames">
      <summary>Gets the names of all supported test runner factories.</summary>
      <returns>The names of all runner factories</returns>
    </member>
    <member name="T:Gallio.Runner.OperationFinishedEventArgs">
      <summary>Base arguments for events raised to indicate the completion of an operation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runner.OperationFinishedEventArgs.Success">
      <summary>Returns true if the operation completed successfully.</summary>
    </member>
    <member name="T:Gallio.Runner.OperationStartedEventArgs">
      <summary>Base arguments for events raised to indicate the beginning of an operation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="T:Gallio.Runner.ResultCode">
      <summary>Describes the result codes used by the application. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Runner.ResultCode.Canceled">
      <summary>The tests were canceled. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.ResultCode.Failure">
      <summary>Some tests failed. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.ResultCode.FatalException">
      <summary>A fatal runtime exception occurred. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.ResultCode.InvalidArguments">
      <summary>Invalid arguments were supplied on the command-line. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.ResultCode.NoTests">
      <summary>No tests were found. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.ResultCode.Success">
      <summary>The tests ran successfully or there were no tests to run. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Runner.RunnerException">
      <summary>The type of exception thrown when the test runner or one of its supportive components like a test domain fails in an unrecoverable manner. It can happen that the test results will be lost or incomplete.</summary>
    </member>
    <member name="T:Gallio.Runner.StandardTestRunnerFactoryNames">
      <summary>Provides constant names for the standard test runner factories. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedAppDomain">
      <summary>Runs the test runner in an isolated AppDomain of the current process. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedProcess">
      <summary>Runs the test runner in an isolated process. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runner.StandardTestRunnerFactoryNames.Local">
      <summary>Runs the test runner in the local AppDomain. This field is constant and read-only.</summary>
    </member>
    <member name="T:Gallio.Runner.TestLauncher">
      <summary>
        <para> The test launcher encapsulated the entire test execution lifecycle from start to finish and provides a simplified pattern for running tests. </para>
        <para> The basic usage pattern is as follows: <list type="numbered"><item>Create the launcher.</item><item>Set properties to specify the inputs and outputs of the test run.</item><item>Run the tests all in one go.</item><item>Optionally do something with the contents of the final report.</item></list></para>
        <para> By default, the launcher assumes that a runtime environment has already been established and is accessible via the <see cref="T:Gallio.Runtime.RuntimeAccessor" />. If there is no runtime yet, then you can cause one to be configured automatically for the duration of the test run by setting the <see cref="P:Gallio.Runner.TestLauncher.RuntimeSetup" /> property accordingly. </para>
        <para> You can override the default <see cref="T:Gallio.Runner.ITestRunner" /> that is created by setting the <see cref="P:Gallio.Runner.TestLauncher.TestRunnerFactoryName" /> property. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.DoNotRun">
      <summary>
        <para> Gets or sets whether to skip test execution. This option may be used to produce a report that contains test metadata for consumption by other tools. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.EchoResults">
      <summary>
        <para> Controls whether the test runner will echo result to the <see cref="P:Gallio.Runner.TestLauncher.Logger" /> as each test finishes. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.IgnoreAnnotations">
      <summary>
        <para> Gets or sets whether to ignore annotations when determining the result code. If false, then error annotations, usually indicative of broken tests, will cause a failure result to be generated. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.Logger">
      <summary>
        <para> Gets or sets the logger to use. </para>
        <para> The default logger is <see cref="F:Gallio.Runtime.Logging.NullLogger.Instance" />. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.ProgressMonitorProvider">
      <summary>
        <para> Gets or sets the progress monitor provider to use. </para>
        <para> The default provider is <see cref="P:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider.Instance" />. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.ReportDirectory">
      <summary>
        <para> Gets or sets the path of the directory to which reports will be written. </para>
        <para> The default value is <c>""</c> which causes reports to be written to the current directory. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.ReportFormats">
      <summary>Gets the mutable list of report formats to generate.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.ReportFormatterOptions">
      <summary>Gets or sets the report formatter options.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.ReportNameFormat">
      <summary>
        <para /> Gets or sets a format string used to construct the name of report files (without the extension). Within the format string, <c>{0}</c> is replaced by the date and <c>{1}</c> by the time. <para> The default value is <c>"test-report-{0}-{1}"</c>. </para></summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.RunTimeLimit">
      <summary>
        <para> Gets or sets the maximum amount of time the tests can run before they are canceled. </para>
        <para>The default value is <c>null</c>, meaning an infinite time.</para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.RuntimeSetup">
      <summary>Gets or sets the <see cref="P:Gallio.Runner.TestLauncher.RuntimeSetup" /> to use for automatically initializing the runtime during test execution or <c>null</c> if the runtime is already initialized.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.ShowReports">
      <summary>
        <para> Gets or sets whether to show the reports after the test run finishes. </para>
        <para> The default value is <c>false</c>. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestExecutionOptions">
      <summary>Gets or sets the test execution options.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestExplorationOptions">
      <summary>Gets or sets the test exploration options.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestPackageConfig">
      <summary>Gets or sets the test package.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestRunnerExtensionSpecifications">
      <summary>Gets a mutable list of test runner extension specifications to instantiate and register with the test runner during test execution.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestRunnerExtensions">
      <summary>Gets a mutable list of test runner extensions to register with the test runner during test execution.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestRunnerFactoryName">
      <summary>
        <para> Specifies the name of a <see cref="T:Gallio.Runner.ITestRunnerFactory" /> to use for constructing the <see cref="T:Gallio.Runner.ITestRunner" /> at test execution time. </para>
        <para> The default value is <see cref="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedProcess" />. </para>
      </summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.TestLauncher.TestRunnerOptions">
      <summary>Gets or sets the test runner options.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.TestLauncher.Cancel">
      <summary>Cancels the test run and prevents a new one from starting.</summary>
    </member>
    <member name="M:Gallio.Runner.TestLauncher.Run">
      <summary>Runs the test package as configured.</summary>
      <returns>A result object</returns>
    </member>
    <member name="T:Gallio.Runner.TestLauncherResult">
      <summary>Contains the result of a complete test run.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncherResult.Report">
      <summary>Gets the test report.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncherResult.ReportDocumentPaths">
      <summary>Gets the full paths of the formatted report documents.</summary>
      <value>The full paths of the formatted report documents</value>
    </member>
    <member name="P:Gallio.Runner.TestLauncherResult.ResultCode">
      <summary>Gets the result code.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncherResult.ResultSummary">
      <summary>Gets a short summary with the number of test that passed, failed and so on.</summary>
    </member>
    <member name="P:Gallio.Runner.TestLauncherResult.Statistics">
      <summary>Gets the statistics of the execution from the report or an empty statistics object if none.</summary>
    </member>
    <member name="M:Gallio.Runner.TestLauncherResult.AddReportDocumentPath(System.String)">
      <summary>Adds a new report document path.</summary>
      <param name="reportDocumentPath">The report document path</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDocumentPath" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.TestLauncherResult.GenerateReports(System.String,System.String,System.Collections.Generic.IList{System.String},Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runner.Reports.IReportManager,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Generates reports of the desired forms. </para>
        <para> This method adds the paths of the generated report documents to <see cref="P:Gallio.Runner.TestLauncherResult.ReportDocumentPaths" />. </para>
      </summary>
      <param name="reportDirectory">The report directory</param>
      <param name="reportName">The report name</param>
      <param name="reportFormats">The report formats to generate</param>
      <param name="reportFormatOptions">The report formatter options</param>
      <param name="reportManager">The report manager</param>
      <param name="progressMonitor">A progress monitor for the operation</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDirectory" />, <paramref name="reportName" />, <paramref name="reportFormats" />, <paramref name="reportFormatOptions" />, <paramref name="reportManager" />, or <paramref name="progressMonitor" /> is null.</exception>
    </member>
    <member name="M:Gallio.Runner.TestLauncherResult.SetResultCode(System.Int32)">
      <summary>Sets the result code of the result.</summary>
      <param name="value">The new result code</param>
    </member>
    <member name="M:Gallio.Runner.TestLauncherResult.ShowReportDocuments">
      <summary>Shows the report documents enumerated in the launcher result.</summary>
      <returns>True if the report documents were successfully opened</returns>
    </member>
    <member name="T:Gallio.Runner.TestRunnerOptions">
      <summary>Provides options that control the operation of the test runner. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.TestRunnerOptions.Properties">
      <summary>Gets a mutable collection of key/value pairs that specify configuration properties for the test runner.</summary>
    </member>
    <member name="M:Gallio.Runner.TestRunnerOptions.Copy">
      <summary>Creates a copy of the options.</summary>
      <returns>The copy</returns>
    </member>
    <member name="T:Gallio.Runner.TestRunnerUtils">
      <summary>Provides helper functions for test runner tools. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runner.TestRunnerUtils.CreateTestRunnerByName(System.String)">
      <summary>Creates a test runner given its factory name.</summary>
      <param name="factoryName">The test runner factory name</param>
      <returns>The test runner</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryName" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.TestRunnerUtils.ShowReportDocument(System.String)">
      <summary>Presents a generated report to the user using the default viewing application for the report's document type.</summary>
      <param name="reportDocumentPath">The path of the report</param>
      <returns>True if the report document was successfully opened</returns>
    </member>
    <member name="T:Gallio.Runner.ITestRunner">
      <summary>A test runner provides the basic functionality for loading, exploring and running tests. It abstracts away most concerns having to do with the execution of tests in isolated (possibly remote) domains.</summary>
    </member>
    <member name="P:Gallio.Runner.ITestRunner.Events">
      <summary>Gets the event dispatcher for the test runner.</summary>
    </member>
    <member name="M:Gallio.Runner.ITestRunner.Dispose(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Disposes the test runner. Does nothing if already disposed or if not initialized.</summary>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.ITestRunner.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackageConfig" />, <paramref name="testExplorationOptions" />, or <paramref name="progressMonitor" /> is null</exception>
      <exception cref="T:Gallio.Runner.RunnerException">Thrown if the operation failed</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the runner has been disposed</exception>
    </member>
    <member name="M:Gallio.Runner.ITestRunner.Initialize(Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Initializes the test runner.</summary>
      <param name="testRunnerOptions">The test runner options</param>
      <param name="logger">The logger</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testRunnerOptions" />, <paramref name="logger" /> or <paramref name="progressMonitor" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the runner is already initialized</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the runner has been disposed</exception>
    </member>
    <member name="M:Gallio.Runner.ITestRunner.RegisterExtension(Gallio.Runner.Extensions.ITestRunnerExtension)">
      <summary>Registers a test runner extension.</summary>
      <param name="extension">The test runner extension to register</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extension" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the test runner has already been initialized</exception>
    </member>
    <member name="M:Gallio.Runner.ITestRunner.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Execution.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores and runs tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExecutionOptions">The test execution options</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackageConfig" />, <paramref name="testExplorationOptions" />, <paramref name="testExecutionOptions" />, or <paramref name="progressMonitor" /> is null</exception>
      <exception cref="T:Gallio.Runner.RunnerException">Thrown if the operation failed</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the runner has been disposed</exception>
    </member>
    <member name="T:Gallio.Runner.ITestRunnerFactory">
      <summary>A test tunner factory is a service that creates an <see cref="T:Gallio.Runner.ITestRunner" /> given a set of options. Each factory has a name which is used by <see cref="T:Gallio.Runner.ITestRunnerManager" /> to select the particular factory to use for a given test run.</summary>
    </member>
    <member name="M:Gallio.Runner.ITestRunnerFactory.CreateTestRunner">
      <summary>Creates a test runner.</summary>
      <returns>The test runner</returns>
    </member>
    <member name="T:Gallio.Runner.ITestRunnerManager">
      <summary>A test runner manager enumerates the names of the <see cref="T:Gallio.Runner.ITestRunnerFactory" /> services that are available and provides a mechanism for creating <see cref="T:Gallio.Runner.ITestRunner" /> instances.</summary>
    </member>
    <member name="P:Gallio.Runner.ITestRunnerManager.FactoryResolver">
      <summary>Gets a resolver for resolving registered <see cref="T:Gallio.Runner.ITestRunnerFactory" /> components by name.</summary>
    </member>
    <member name="M:Gallio.Runner.ITestRunnerManager.CreateTestRunner(System.String)">
      <summary>Creates a test runner.</summary>
      <param name="factoryName">The name of the test runner factory, matched case-insensitively</param>
      <returns>The test runner</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryName" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.ITestRunnerManager.GetFactory(System.String)">
      <summary>Gets the factory by name, or null if none.</summary>
      <param name="factoryName">The name of the test runner factory, matched case-insensitively</param>
      <returns>The test runner</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryName" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.ITestRunnerManager.GetFactoryNames">
      <summary>Gets the names of all supported test runner factories.</summary>
      <returns>The names of all runner factories</returns>
    </member>
    <member name="T:Gallio.Runner.Caching.DiskCacheException">
      <summary>The type of exception thrown when an error occurs while manipulating the disk cache.</summary>
    </member>
    <member name="T:Gallio.Runner.Caching.SimpleDiskCache">
      <summary>A simple disk cache that stores its contents in a particular directory using hashes of the key values to ensure uniqueness.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.SimpleDiskCache.CacheDirectoryPath">
      <summary>Gets the path of the cache directory.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.SimpleDiskCache.Groups">
      <summary>Gets the collection of disk cache groups.</summary>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.GetGroup(System.String)">
      <summary>Gets the group with the given key.</summary>
      <param name="key">The key, nor null</param>
      <returns>The cache group</returns>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Purge">
      <summary>Deletes all items in the cache.</summary>
    </member>
    <member name="T:Gallio.Runner.Caching.SimpleDiskCache.Group">
      <summary>Represents a disk cache group.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.SimpleDiskCache.Group.Cache">
      <summary>Gets the disk cache that contains the group.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.SimpleDiskCache.Group.Exists">
      <summary>Returns true if the group exists on disk.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.SimpleDiskCache.Group.Key">
      <summary>Gets the key of the group.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.SimpleDiskCache.Group.Location">
      <summary>Gets the <see cref="T:System.IO.DirectoryInfo" /> that represents the physical storage location of the disk cache group in the filesystem.</summary>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Group.Create">
      <summary>Creates the group if it does not exist.</summary>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Group.CreateSubdirectory(System.String)">
      <summary>Creates a directory within the group.</summary>
      <param name="relativeDirectoryPath">The relative path of the directory to create within the group</param>
      <returns>Directory information for the directory that was created</returns>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Group.Delete">
      <summary>Deletes the group and all of its contents if any.</summary>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Group.GetFileInfo(System.String)">
      <summary>Gets information about a file within the group.</summary>
      <param name="relativeFilePath">The relative path of the file within the group</param>
      <returns>The file info</returns>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Group.GetSubdirectoryInfo(System.String)">
      <summary>Gets information about a directory within the group.</summary>
      <param name="relativeDirectoryPath">The relative path of the directory within the group</param>
      <returns>The directory info</returns>
    </member>
    <member name="M:Gallio.Runner.Caching.SimpleDiskCache.Group.OpenFile(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
      <summary>
        <para> Opens a file within the group. </para>
        <para> If a new file is being created, automatically create the group and the containing directory for the file. </para>
      </summary>
      <param name="relativeFilePath">The relative path of the file to open within the group</param>
      <param name="mode">The file open mode</param>
      <param name="access">The file access mode</param>
      <param name="share">The file sharing mode</param>
      <returns>The file stream</returns>
    </member>
    <member name="T:Gallio.Runner.Caching.TemporaryDiskCache">
      <summary>A disk cache that stores its contents in the user's temporary directory.</summary>
    </member>
    <member name="F:Gallio.Runner.Caching.TemporaryDiskCache.DefaultCacheDirectoryName">
      <summary>The default cache directory name. This field is read-only.</summary>
    </member>
    <member name="T:Gallio.Runner.Caching.IDiskCache">
      <summary>A disk cache manages temporary files and directories stored on disk and arranged into groups associated with arbitrary string keys. The files and directories within each group are assumed to have the same lifetime.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.IDiskCache.Groups">
      <summary>Gets the collection of disk cache groups.</summary>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCache.Purge">
      <summary>Deletes all items in the cache.</summary>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="T:Gallio.Runner.Caching.IDiskCacheGroup">
      <summary>A disk cache group represents an indexed partition of the disk cache. It is physically manifested as a directory on disk and may contain any number of related files or directories with the same lifetime.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.IDiskCacheGroup.Cache">
      <summary>Gets the disk cache that contains the group.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.IDiskCacheGroup.Exists">
      <summary>Returns true if the group exists on disk.</summary>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="P:Gallio.Runner.Caching.IDiskCacheGroup.Key">
      <summary>Gets the key of the group.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.IDiskCacheGroup.Location">
      <summary>Gets the <see cref="T:System.IO.DirectoryInfo" /> that represents the physical storage location of the disk cache group in the filesystem.</summary>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCacheGroup.Create">
      <summary>Creates the group if it does not exist.</summary>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCacheGroup.CreateSubdirectory(System.String)">
      <summary>Creates a directory within the group.</summary>
      <param name="relativeDirectoryPath">The relative path of the directory to create within the group</param>
      <returns>Directory information for the directory that was created</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeDirectoryPath" /> is null</exception>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCacheGroup.Delete">
      <summary>Deletes the group and all of its contents if any.</summary>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCacheGroup.GetFileInfo(System.String)">
      <summary>Gets information about a file within the group.</summary>
      <param name="relativeFilePath">The relative path of the file within the group</param>
      <returns>The file info</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeFilePath" /> is null</exception>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCacheGroup.GetSubdirectoryInfo(System.String)">
      <summary>Gets information about a directory within the group.</summary>
      <param name="relativeDirectoryPath">The relative path of the directory within the group</param>
      <returns>The directory info</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeDirectoryPath" /> is null</exception>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="M:Gallio.Runner.Caching.IDiskCacheGroup.OpenFile(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
      <summary>
        <para> Opens a file within the group. </para>
        <para> If a new file is being created, automatically create the group and the containing directory for the file. </para>
      </summary>
      <param name="relativeFilePath">The relative path of the file to open within the group</param>
      <param name="mode">The file open mode</param>
      <param name="access">The file access mode</param>
      <param name="share">The file sharing mode</param>
      <returns>The file stream</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeFilePath" /> is null</exception>
      <exception cref="T:Gallio.Runner.Caching.DiskCacheException">Thrown if an error occurs.</exception>
    </member>
    <member name="T:Gallio.Runner.Caching.IDiskCacheGroupCollection">
      <summary>Represents a collection of groups in a disk cache indexed by an aritrary key string.</summary>
    </member>
    <member name="P:Gallio.Runner.Caching.IDiskCacheGroupCollection.Item(System.String)">
      <summary>Gets the group with the specified key.</summary>
      <param name="key">The key</param>
      <value>The group</value>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Drivers.AggregateTestDriver">
      <summary>An aggregate test driver partitions the work of running tests among multiple test drivers. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.AggregateTestDriver.DoWithPartitions(Gallio.Model.TestPackageConfig,System.Action{System.Collections.Generic.IList{Gallio.Runner.Drivers.AggregateTestDriver.Partition}},System.Action{System.String})">
      <summary>Runs a block of code with partitions of the test package.</summary>
      <param name="testPackageConfig">The test package configuration, not null</param>
      <param name="action">The action to perform given a list of partitions, not null</param>
      <param name="setStatus">An action that can be used to report progress, not null</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.AggregateTestDriver.ExploreImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.AggregateTestDriver.RunImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="T:Gallio.Runner.Drivers.BaseTestDriver">
      <summary>Base implementation of a test driver. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runner.Drivers.BaseTestDriver.Logger">
      <summary>Gets the logger, or a null logger instance if not initialized.</summary>
    </member>
    <member name="P:Gallio.Runner.Drivers.BaseTestDriver.RuntimeSetup">
      <summary>Gets the runtime setup, or null if not initialized.</summary>
    </member>
    <member name="P:Gallio.Runner.Drivers.BaseTestDriver.TestRunnerOptions">
      <summary>Gets the test runner options, or null if not initialized.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.Dispose(System.Boolean)">
      <summary>Disposes the test driver.</summary>
      <param name="disposing">True if <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Dispose" /> was called</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExplorationListener">The test exploration listener</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.ExploreImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)">
      <summary>Initializes the test driver.</summary>
      <param name="runtimeSetup">The runtime setup</param>
      <param name="testRunnerOptions">The test runner options</param>
      <param name="logger">The logger</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.InitializeImpl(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores and runs tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExplorationListener">The test exploration listener</param>
      <param name="testExecutionOptions">The test execution options</param>
      <param name="testExecutionListener">The test execution listener</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
    </member>
    <member name="M:Gallio.Runner.Drivers.BaseTestDriver.RunImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="T:Gallio.Runner.Drivers.HostedTestDriver">
      <summary>A test driver that runs tests remotely within a remote host. The driver further partitions assemblies into test domains based on their configuration requirements.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.HostedTestDriver.ConfigureHost(Gallio.Runtime.Hosting.HostSetup)">
      <summary>Provides an opportunity for subclasses to configure the host.</summary>
      <param name="hostSetup">The host setup, not null</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.HostedTestDriver.DisposeHost(Gallio.Runtime.Hosting.IHost)">
      <summary>Provides an opportunity for subclasses to clean up the host as part of its disposal.</summary>
      <param name="host">The host, not null</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.HostedTestDriver.DoWithPartitions(Gallio.Model.TestPackageConfig,System.Action{System.Collections.Generic.IList{Gallio.Runner.Drivers.AggregateTestDriver.Partition}},System.Action{System.String})">
      <summary>Runs a block of code with partitions of the test package.</summary>
      <param name="testPackageConfig">The test package configuration, not null</param>
      <param name="action">The action to perform given a list of partitions, not null</param>
      <param name="setStatus">An action that can be used to report progress, not null</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.HostedTestDriver.InitializeHost(Gallio.Runtime.Hosting.IHost)">
      <summary>Provides an opportunity for subclasses to initialize the host once created.</summary>
      <param name="host">The host, not null</param>
    </member>
    <member name="T:Gallio.Runner.Drivers.HostedTestDriverFactory">
      <summary>Creates hosted test driver instances.</summary>
    </member>
    <member name="P:Gallio.Runner.Drivers.HostedTestDriverFactory.ShareAppDomain">
      <summary>Specifies whether to share the app-domain among all test domains.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.HostedTestDriverFactory.CreateTestDriver">
      <summary>Creates a test driver.</summary>
      <returns>The new test driver</returns>
    </member>
    <member name="T:Gallio.Runner.Drivers.LocalTestDriver">
      <summary>A simple test driver implementation that runs tests locally within the current domain without any additional consultation of the test frameworks.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.LocalTestDriver.Dispose(System.Boolean)">
      <summary>Disposes the test driver.</summary>
      <param name="disposing">True if <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Dispose" /> was called</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.LocalTestDriver.ExploreImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.LocalTestDriver.InitializeImpl(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.LocalTestDriver.RunImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="T:Gallio.Runner.Drivers.RemoteTestDriver">
      <summary>A proxy for a remote test driver. Wraps a test driver and forwards all messages to it.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.RemoteTestDriver.Dispose(System.Boolean)">
      <summary>Disposes the test driver.</summary>
      <param name="disposing">True if <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Dispose" /> was called</param>
    </member>
    <member name="M:Gallio.Runner.Drivers.RemoteTestDriver.ExploreImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.RemoteTestDriver.InitializeImpl(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.RemoteTestDriver.RunImpl(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Internal implementation of <see cref="M:Gallio.Runner.Drivers.BaseTestDriver.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />. Called after argument validation takes place.</summary>
    </member>
    <member name="E:Gallio.Runner.Drivers.RemoteTestDriver.Disposed">
      <summary>An event that is fired when the test driver is disposed.</summary>
    </member>
    <member name="T:Gallio.Runner.Drivers.AggregateTestDriver.Partition">
      <summary>Provides information about a partition of the aggregate test driver. Each partition specifies a test driver and a test package configuration that covers a portion of the total test package.</summary>
    </member>
    <member name="P:Gallio.Runner.Drivers.AggregateTestDriver.Partition.TestDriverFactory">
      <summary>Gets the test driver factory.</summary>
    </member>
    <member name="P:Gallio.Runner.Drivers.AggregateTestDriver.Partition.TestPackageConfig">
      <summary>Gets the test package configuration for the driver.</summary>
    </member>
    <member name="T:Gallio.Runner.Drivers.ITestDriver">
      <summary>A test driver controls how tests are loaded, explored, and run.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.ITestDriver.Explore(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExplorationListener">The test exploration listener</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
    </member>
    <member name="M:Gallio.Runner.Drivers.ITestDriver.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger)">
      <summary>Initializes the test driver.</summary>
      <param name="runtimeSetup">The runtime setup</param>
      <param name="testRunnerOptions">The test runner options</param>
      <param name="logger">The logger</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="runtimeSetup" />, <paramref name="testRunnerOptions" />, or <paramref name="logger" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Drivers.ITestDriver.Run(Gallio.Model.TestPackageConfig,Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Explores and runs tests in a test package.</summary>
      <param name="testPackageConfig">The test package configuration</param>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExplorationListener">The test exploration listener</param>
      <param name="testExecutionOptions">The test execution options</param>
      <param name="testExecutionListener">The test execution listener</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The test report</returns>
    </member>
    <member name="T:Gallio.Runner.Drivers.ITestDriverFactory">
      <summary>Creates test drivers.</summary>
    </member>
    <member name="M:Gallio.Runner.Drivers.ITestDriverFactory.CreateTestDriver">
      <summary>Creates a test driver.</summary>
      <returns>The new test driver</returns>
    </member>
    <member name="T:Gallio.Runner.Events.DisposeFinishedEventArgs">
      <summary>Arguments for an event raised to indicate that the test runner disposal has finished. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.DisposeStartedEventArgs">
      <summary>Arguments for an event raised to indicate that the test runner disposal has started. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.ExploreFinishedEventArgs">
      <summary>Arguments for an event raised to indicate that test exploration has finished. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.ExploreFinishedEventArgs.Report">
      <summary>Gets the report, including test model data on success.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.ExploreStartedEventArgs">
      <summary>Arguments for an event raised to indicate that test exploration has started. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.ExploreStartedEventArgs.ReportLockBox">
      <summary>Gets the report lock-box which may be used to access the report asynchronously during execution.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.ExploreStartedEventArgs.TestExplorationOptions">
      <summary>Gets the test exploration options.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.ExploreStartedEventArgs.TestPackageConfig">
      <summary>Gets the test package configuration.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.InitializeFinishedEventArgs">
      <summary>Arguments for an event raised to indicate that the test runner initialization has finished. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.InitializeStartedEventArgs">
      <summary>Arguments for an event raised to indicate that the test runner initialization has started. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.InitializeStartedEventArgs.Options">
      <summary>Gets the test runner options.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.RunFinishedEventArgs">
      <summary>Arguments for an event raised to indicate that test execution has finished. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.RunFinishedEventArgs.Report">
      <summary>Gets the report, including test package run data on success.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.RunStartedEventArgs">
      <summary>Arguments for an event raised to indicate that test execution has started. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.RunStartedEventArgs.ReportLockBox">
      <summary>Gets the report lock-box which may be used to access the report asynchronously during execution.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.RunStartedEventArgs.TestExecutionOptions">
      <summary>Gets the test execution options.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.RunStartedEventArgs.TestExplorationOptions">
      <summary>Gets the test exploration options.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.RunStartedEventArgs.TestPackageConfig">
      <summary>Gets the test package configuration.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestModelAnnotationAddedEventArgs">
      <summary>Arguments for an event raised to signal that an annotation has been added to the test model. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestModelAnnotationAddedEventArgs.Annotation">
      <summary>Gets the annotation that was added.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestModelAnnotationAddedEventArgs.Report">
      <summary>Gets the report.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestModelSubtreeMergedEventArgs">
      <summary>Arguments for an event raised to signal that a subtree of tests has been merged into the test model. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestModelSubtreeMergedEventArgs.Report">
      <summary>Gets the report.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestModelSubtreeMergedEventArgs.Test">
      <summary>Gets the test at the top of the subtree that was merged.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestRunnerEventDispatcher">
      <summary>Dispatches test runner events to listeners. Each notification function ensures that the event is safely dispatched via <see cref="M:Gallio.Utilities.EventHandlerUtils.SafeInvoke(System.EventHandler,System.Object,System.EventArgs)" />. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyDisposeFinished(Gallio.Runner.Events.DisposeFinishedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeFinished" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyDisposeStarted(Gallio.Runner.Events.DisposeStartedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeStarted" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyExploreFinished(Gallio.Runner.Events.ExploreFinishedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreFinished" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyExploreStarted(Gallio.Runner.Events.ExploreStartedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreStarted" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyInitializeFinished(Gallio.Runner.Events.InitializeFinishedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeFinished" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyInitializeStarted(Gallio.Runner.Events.InitializeStartedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeStarted" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyLogMessage(Gallio.Runtime.Logging.LogMessageEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.LogMessage" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyRunFinished(Gallio.Runner.Events.RunFinishedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunFinished" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyRunStarted(Gallio.Runner.Events.RunStartedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunStarted" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestModelAnnotationAdded(Gallio.Runner.Events.TestModelAnnotationAddedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestModelAnnotationAdded" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestModelSubtreeMerged(Gallio.Runner.Events.TestModelSubtreeMergedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestModelSubtreeMerged" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepFinished(Gallio.Runner.Events.TestStepFinishedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepFinished" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLifecyclePhaseChanged(Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLifecyclePhaseChanged" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogAttach(Gallio.Runner.Events.TestStepLogAttachEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogAttach" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamBeginMarker(Gallio.Runner.Events.TestStepLogStreamBeginMarkerEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginMarker" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamBeginSection(Gallio.Runner.Events.TestStepLogStreamBeginSectionEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginSection" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamEmbed(Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEmbed" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamEnd(Gallio.Runner.Events.TestStepLogStreamEndEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEnd" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamWrite(Gallio.Runner.Events.TestStepLogStreamWriteEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamWrite" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepMetadataAdded(Gallio.Runner.Events.TestStepMetadataAddedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepMetadataAdded" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepStarted(Gallio.Runner.Events.TestStepStartedEventArgs)">
      <summary>Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepStarted" /> event.</summary>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.SubscribeTo(Gallio.Runner.Events.ITestRunnerEvents)">
      <summary>Subscribes to another event object such that the events will be forwarded to the handlers registered on this dispatcher.</summary>
      <param name="events">The other events object</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="events" /> is null</exception>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeFinished">
      <summary>The event raised to indicate that the test runner disposal has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeStarted">
      <summary>The event raised to indicate that the test runner disposal has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreFinished">
      <summary>The event raised to indicate that test exploration has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreStarted">
      <summary>The event raised to indicate that test exploration has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeFinished">
      <summary>The event raised to indicate that the test runner initialization has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeStarted">
      <summary>The event raised to indicate that the test runner initialization has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.LogMessage">
      <summary>The event raised to indicate that a log message was written by the test runner.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunFinished">
      <summary>The event raised to indicate that test execution has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunStarted">
      <summary>The event raised to indicate that test execution has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestModelAnnotationAdded">
      <summary>The event raised to indicate that an annotation was added to the test model.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestModelSubtreeMerged">
      <summary>The event raised to indicate that a subtree of tests was merged into the test model.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepFinished">
      <summary>The event raised to indicate that a test step has finished execution.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLifecyclePhaseChanged">
      <summary>The event raised to indicate that a test step has entered a new lifecycle phase.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogAttach">
      <summary>The event raised to indicate that an attachment has been added to a test step log.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginMarker">
      <summary>The event raised to indicate that a marker has been started within a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginSection">
      <summary>The event raised to indicate that a section has been started within a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEmbed">
      <summary>The event raised to indicate that an attachment has been embedded into a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEnd">
      <summary>The event raised to indicate that a section has finished within a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamWrite">
      <summary>The event raised to indicate that text has been written to a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepMetadataAdded">
      <summary>The event raised to indicate that a test step dynamically added metadata to itself.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepStarted">
      <summary>The event raised to indicate that a test step has started execution.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepEventArgs">
      <summary>Base arguments for an event raised to provide information about a test step. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepEventArgs.Report">
      <summary>Gets the report.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepEventArgs.Test">
      <summary>Gets the test data of the test that contains the test step.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepEventArgs.TestStepRun">
      <summary>Gets the test step run.</summary>
    </member>
    <member name="M:Gallio.Runner.Events.TestStepEventArgs.GetStepKind">
      <summary>Gets the kind of step described using the <see cref="F:Gallio.Model.MetadataKeys.TestKind" /> metadata key.</summary>
      <returns>The step kind</returns>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepFinishedEventArgs">
      <summary>Arguments for an event raised to indicate that a test step has finished execution. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs">
      <summary>Arguments for an event raised to indicate that a test step has entered a new lifecycle phase. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs.LifecyclePhase">
      <summary>Gets the lifecycle phase name.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogAttachEventArgs">
      <summary>Arguments for an event raised to indicate that an attachment has been added to a test step log. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLogAttachEventArgs.Attachment">
      <summary>Gets the attachment.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogStreamBeginMarkerEventArgs">
      <summary>Arguments for an event raised to indicate that a marker region has been started within a test step log stream. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLogStreamBeginMarkerEventArgs.Marker">
      <summary>Gets the marker.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogStreamBeginSectionEventArgs">
      <summary>Arguments for an event raised to indicate that a section has been started within a test step log stream. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLogStreamBeginSectionEventArgs.SectionName">
      <summary>Gets the name of the section that was started.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs">
      <summary>Arguments for an event raised to indicate that an attachment has been embedded into a test step log stream. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs.AttachmentName">
      <summary>Gets the name of the attachment that was embedded.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogStreamEndEventArgs">
      <summary>Arguments for an event raised to indicate that a section has been finished within a test step log stream. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogStreamEventArgs">
      <summary>Base arguments for an event raised to indicate that a test step log stream has been modified in some way. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLogStreamEventArgs.LogStreamName">
      <summary>Gets the log stream name.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepLogStreamWriteEventArgs">
      <summary>Arguments for an event raised to indicate that text has been written to a test step log stream. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepLogStreamWriteEventArgs.Text">
      <summary>Gets the text that was written.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepMetadataAddedEventArgs">
      <summary>Arguments for an event raised to indicate that a test step dynamically added metadata to itself. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepMetadataAddedEventArgs.MetadataKey">
      <summary>Gets the metadata key.</summary>
    </member>
    <member name="P:Gallio.Runner.Events.TestStepMetadataAddedEventArgs.MetadataValue">
      <summary>Gets the metadata value.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.TestStepStartedEventArgs">
      <summary>Arguments for an event raised to indicate that a test step has started execution. This class cannot be inherited.</summary>
    </member>
    <member name="T:Gallio.Runner.Events.ITestRunnerEvents">
      <summary>Declares all of the events that may be raised by a <see cref="T:Gallio.Runner.ITestRunner" />.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.DisposeFinished">
      <summary>The event raised to indicate that the test runner disposal has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.DisposeStarted">
      <summary>The event raised to indicate that the test runner disposal has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.ExploreFinished">
      <summary>The event raised to indicate that test exploration has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.ExploreStarted">
      <summary>The event raised to indicate that test exploration has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.InitializeFinished">
      <summary>The event raised to indicate that the test runner initialization has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.InitializeStarted">
      <summary>The event raised to indicate that the test runner initialization has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.LogMessage">
      <summary>The event raised to indicate that a log message was written by the test runner.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.RunFinished">
      <summary>The event raised to indicate that test execution has finished.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.RunStarted">
      <summary>The event raised to indicate that test execution has started.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestModelAnnotationAdded">
      <summary>The event raised to indicate that an annotation was added to the test model.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestModelSubtreeMerged">
      <summary>The event raised to indicate that a subtree of tests was merged into the test model.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepFinished">
      <summary>The event raised to indicate that a test step has finished execution.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLifecyclePhaseChanged">
      <summary>The event raised to indicate that a test step has entered a new lifecycle phase.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogAttach">
      <summary>The event raised to indicate that an attachment has been added to a test step log.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamBeginMarker">
      <summary>The event raised to indicate that a marker has been started within a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamBeginSection">
      <summary>The event raised to indicate that a section has been started within a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamEmbed">
      <summary>The event raised to indicate that an attachment has been embedded into a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamEnd">
      <summary>The event raised to indicate that a section has finished within a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamWrite">
      <summary>The event raised to indicate that text has been written to a test step log stream.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepMetadataAdded">
      <summary>The event raised to indicate that a test step dynamically added metadata to itself.</summary>
    </member>
    <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepStarted">
      <summary>The event raised to indicate that a test step has started execution.</summary>
    </member>
    <member name="T:Gallio.Runner.Extensions.DebugExtension">
      <summary>Monitors <see cref="T:Gallio.Runner.ITestRunner" /> events and writes debug messages to the runner's logger.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.DebugExtension.Initialize">
      <summary>Initializes the extension as part of extension installation.</summary>
    </member>
    <member name="T:Gallio.Runner.Extensions.LogExtension">
      <summary>
        <para> The log extension writes a summary of test execution progress to the test runner's logger so the user can monitor what's going on. </para> Passing tests are recorded with severity <see cref="F:Gallio.Runtime.Logging.LogSeverity.Info" />, warnings are recorded with severity <see cref="F:Gallio.Runtime.Logging.LogSeverity.Warning" /> and failures are recorded with severity <see cref="F:Gallio.Runtime.Logging.LogSeverity.Error" />.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.LogExtension.Initialize">
      <summary>Initializes the extension as part of extension installation.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.LogExtension.LogAnnotation(Gallio.Model.Serialization.AnnotationData)">
      <summary>Logs an annotation.</summary>
      <param name="annotation">The annotation to log</param>
    </member>
    <member name="M:Gallio.Runner.Extensions.LogExtension.LogTestCaseFinished(Gallio.Runner.Events.TestStepFinishedEventArgs)">
      <summary>Logs a message about a test case that has finished.</summary>
      <param name="e">The event</param>
    </member>
    <member name="M:Gallio.Runner.Extensions.LogExtension.LogTestCaseStarted(Gallio.Runner.Events.TestStepStartedEventArgs)">
      <summary>Logs a message about a test case that has started.</summary>
      <param name="e">The event</param>
    </member>
    <member name="T:Gallio.Runner.Extensions.TestRunnerExtension">
      <summary>Abstract implementation of a test runner extension. <seealso cref="T:Gallio.Runner.Extensions.ITestRunnerExtension" /> for more details. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runner.Extensions.TestRunnerExtension.Events">
      <summary>Gets the test runner event extension point.</summary>
    </member>
    <member name="P:Gallio.Runner.Extensions.TestRunnerExtension.Logger">
      <summary>Gets the logger.</summary>
    </member>
    <member name="P:Gallio.Runner.Extensions.TestRunnerExtension.Parameters">
      <summary>Gets or sets configuration parameters for the extension.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.TestRunnerExtension.Initialize">
      <summary>Initializes the extension as part of extension installation.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.TestRunnerExtension.Install(Gallio.Runner.Events.ITestRunnerEvents,Gallio.Runtime.Logging.ILogger)">
      <summary>Installs the extension into a test runner.</summary>
      <param name="events">The test runner events, not null</param>
      <param name="logger">The logger, not null</param>
    </member>
    <member name="T:Gallio.Runner.Extensions.TestRunnerExtensionUtils">
      <summary>Provides utilities for manipulating test runner extensions. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.TestRunnerExtensionUtils.CreateExtensionFromSpecification(System.String)">
      <summary>
        <para> Creates an extension from its specification. </para>
        <para> An extension specification has the form "[Namespace.]Type,Assembly[;Parameters]". The extension class must implement <see cref="T:Gallio.Runner.Extensions.ITestRunnerExtension" />. The namespace may be omitted if the assembly contains exactly one class with the specified name. The parameter string is passed to the extension exactly as written. </para>
        <para> Examples: <list type="bullet"><item>"MyExtensions.MyExtension,MyExtensions.dll;Parameter1,Parameter2"</item><item>"CustomLogger,MyExtensions"</item></list></para>
      </summary>
      <param name="extensionSpecification">The extension specification</param>
      <returns>The extension</returns>
      <exception cref="T:Gallio.Runner.RunnerException">Thrown if the extension cannot be instantiated and configured</exception>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extensionSpecification" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Extensions.ITestRunnerExtension">
      <summary>
        <para> A test runner extension plugs augments the behavior oa <see cref="T:Gallio.Runner.ITestRunner" /> by attaching new behaviors to its event handlers. </para>
        <para> Typical extension use-cases: <list type="bullet"><item>Custom logging by listening for events of interest and writing messages to a file or to another location.</item><item>Custom configuration of test package loading, test exploration and test execution options by listening for the starting events of the phase and modifying the options in place.</item></list></para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.Extensions.ITestRunnerExtension.Parameters">
      <summary>Gets or sets configuration parameters for the extension.</summary>
    </member>
    <member name="M:Gallio.Runner.Extensions.ITestRunnerExtension.Install(Gallio.Runner.Events.ITestRunnerEvents,Gallio.Runtime.Logging.ILogger)">
      <summary>Installs the extension into a test runner.</summary>
      <param name="events">The test runner events, not null</param>
      <param name="logger">The logger, not null</param>
    </member>
    <member name="T:Gallio.Runner.Harness.ConsoleTestEnvironment">
      <summary>Sets up console I/O streams.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.ConsoleTestEnvironment.SetUp">
      <summary>Sets up the test environment.</summary>
      <returns>Returns an object that when disposed causes the test environment to be torn down</returns>
    </member>
    <member name="T:Gallio.Runner.Harness.ContextualLogTextWriter">
      <summary>A contextual log text writer messages to a named log stream in the log associated with the test execution context that is active at the time each message is written. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Harness.ContextualLogTextWriter.Encoding">
      <summary>When overridden in a derived class, returns the <see cref="T:System.Text.Encoding" /> in which the output is written.</summary>
      <value>The Encoding in which the output is written.</value>
    </member>
    <member name="P:Gallio.Runner.Harness.ContextualLogTextWriter.NewLine">
      <summary>Gets or sets the line terminator string used by the current TextWriter.</summary>
      <value>The line terminator string for the current TextWriter.</value>
    </member>
    <member name="M:Gallio.Runner.Harness.ContextualLogTextWriter.Write(System.String)">
      <summary>Writes a string to the text stream.</summary>
      <param name="value">The string to write.</param>
    </member>
    <member name="M:Gallio.Runner.Harness.ContextualLogTextWriter.Write(System.Char)">
      <summary>Writes a character to the text stream.</summary>
      <param name="value">The character to write to the text stream.</param>
    </member>
    <member name="M:Gallio.Runner.Harness.ContextualLogTextWriter.Write(System.Char[],System.Int32,System.Int32)">
      <summary>Writes a subarray of characters to the text stream.</summary>
      <param name="buffer">The character array to write data from.</param>
      <param name="index">Starting index in the buffer.</param>
      <param name="count">The number of characters to write.</param>
    </member>
    <member name="T:Gallio.Runner.Harness.ContextualLogTraceListener">
      <summary>A contextual log trace listener messages to a named log stream in the log associated with the test execution context that is active at the time each message is written. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Harness.ContextualLogTraceListener.IsThreadSafe">
      <summary>Gets a value indicating whether the trace listener is thread safe.</summary>
      <value>true if the trace listener is thread safe; otherwise, false. The default is false.</value>
    </member>
    <member name="M:Gallio.Runner.Harness.ContextualLogTraceListener.Write(System.String)">
      <summary>When overridden in a derived class, writes the specified message to the listener you create in the derived class.</summary>
      <param name="message">A message to write.</param>
    </member>
    <member name="M:Gallio.Runner.Harness.ContextualLogTraceListener.WriteLine(System.String)">
      <summary>When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator.</summary>
      <param name="message">A message to write.</param>
    </member>
    <member name="T:Gallio.Runner.Harness.DefaultTestHarness">
      <summary>Default implementation of a test harness.</summary>
    </member>
    <member name="P:Gallio.Runner.Harness.DefaultTestHarness.TestModel">
      <summary>Gets the test model, or null if the test model has not been built.</summary>
    </member>
    <member name="P:Gallio.Runner.Harness.DefaultTestHarness.TestPackage">
      <summary>Gets the test package loaded in the test harness, or null if none.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.AddTestEnvironment(Gallio.Runner.Harness.ITestEnvironment)">
      <summary>Adds a test environment.</summary>
      <param name="environment">The test framework to add</param>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.AddTestFramework(Gallio.Model.ITestFramework)">
      <summary>Adds a test framework.</summary>
      <param name="framework">The test framework to add</param>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.Explore(Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Populates the test model.</summary>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExplorationListener">The test exploration listener</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.Load(Gallio.Model.TestPackageConfig,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Loads a test package into the test harness.</summary>
      <param name="packageConfig">The test package configuration</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.Run(Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Runs the tests.</summary>
      <param name="testExecutionOptions">The test execution options</param>
      <param name="testExecutionListener">The test execution listener</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarness.Unload(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Unloads the tests.</summary>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="T:Gallio.Runner.Harness.DefaultTestHarnessFactory">
      <summary>The default test harness factory creates a <see cref="T:Gallio.Runner.Harness.DefaultTestHarness" />.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.DefaultTestHarnessFactory.CreateHarness">
      <summary>Creates a test harness and associates it with its test harness contributors, if any.</summary>
      <returns>The test harness</returns>
    </member>
    <member name="T:Gallio.Runner.Harness.TraceTestEnvironment">
      <summary>Sets up trace listeners.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.TraceTestEnvironment.SetUp">
      <summary>Sets up the test environment.</summary>
      <returns>Returns an object that when disposed causes the test environment to be torn down</returns>
    </member>
    <member name="T:Gallio.Runner.Harness.UnhandledExceptionTestEnvironment">
      <summary>Logs unhandled exceptions instead of killing the AppDomain.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.UnhandledExceptionTestEnvironment.SetUp">
      <summary>Sets up the test environment.</summary>
      <returns>Returns an object that when disposed causes the test environment to be torn down</returns>
    </member>
    <member name="T:Gallio.Runner.Harness.ITestEnvironment">
      <summary>The test environment configures global behavior related to preparing the test execution environment for running tests and tearing them down.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestEnvironment.SetUp">
      <summary>Sets up the test environment.</summary>
      <returns>Returns an object that when disposed causes the test environment to be torn down</returns>
    </member>
    <member name="T:Gallio.Runner.Harness.ITestHarness">
      <summary>The test harness manages the lifecycle of test enumeration and execution. Contributors (such as test framework adapters) may attach event handlers to extend or modify the behavior at distinct points in the lifecycle. A new test harness instance is created when a test project is loaded into memory to serve as the ultimate container for all of its related resources.</summary>
    </member>
    <member name="P:Gallio.Runner.Harness.ITestHarness.TestModel">
      <summary>Gets the test model, or null if the test model has not been built.</summary>
    </member>
    <member name="P:Gallio.Runner.Harness.ITestHarness.TestPackage">
      <summary>Gets the test package loaded in the test harness, or null if none.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarness.AddTestEnvironment(Gallio.Runner.Harness.ITestEnvironment)">
      <summary>Adds a test environment.</summary>
      <param name="environment">The test framework to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="environment" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarness.AddTestFramework(Gallio.Model.ITestFramework)">
      <summary>Adds a test framework.</summary>
      <param name="framework">The test framework to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="framework" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarness.Explore(Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Populates the test model.</summary>
      <param name="testExplorationOptions">The test exploration options</param>
      <param name="testExplorationListener">The test exploration listener</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> or <paramref name="testExplorationOptions" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="M:Gallio.Runner.Harness.ITestHarness.Load(Gallio.Model.TestPackageConfig,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> has not been called yet</exception>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarness.Load(Gallio.Model.TestPackageConfig,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Loads a test package into the test harness.</summary>
      <param name="packageConfig">The test package configuration</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> or <paramref name="packageConfig" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="M:Gallio.Runner.Harness.ITestHarness.Load(Gallio.Model.TestPackageConfig,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> has already been called once because this interface does not support unloading packages except by disposing the harness and recreating it</exception>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarness.Run(Gallio.Model.Execution.TestExecutionOptions,Gallio.Model.Messages.ITestExecutionListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Runs the tests.</summary>
      <param name="testExecutionOptions">The test execution options</param>
      <param name="testExecutionListener">The test execution listener</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" />, <paramref name="testExecutionListener" /> or <paramref name="testExecutionOptions" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="M:Gallio.Runner.Harness.ITestHarness.Explore(Gallio.Model.TestExplorationOptions,Gallio.Model.Messages.ITestExplorationListener,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> has not been called yet</exception>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarness.Unload(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Unloads the tests.</summary>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Harness.ITestHarnessFactory">
      <summary>A test harness factory.</summary>
    </member>
    <member name="M:Gallio.Runner.Harness.ITestHarnessFactory.CreateHarness">
      <summary>Creates a test harness and associates it with its test harness contributors, if any.</summary>
      <returns>The test harness</returns>
    </member>
    <member name="T:Gallio.Runner.Projects.FilterInfo">
      <summary>Filter record for Gallio project.</summary>
    </member>
    <member name="P:Gallio.Runner.Projects.FilterInfo.Filter">
      <summary>A string representation of the filter.</summary>
    </member>
    <member name="P:Gallio.Runner.Projects.FilterInfo.FilterName">
      <summary>The name of the filter.</summary>
    </member>
    <member name="T:Gallio.Runner.Projects.Project">
      <summary>Gallio project container. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Projects.Project.TestFilters">
      <summary>A list of test filters for the project.</summary>
    </member>
    <member name="P:Gallio.Runner.Projects.Project.TestPackageConfig">
      <summary>The test package.</summary>
    </member>
    <member name="T:Gallio.Runner.Projects.ProjectUtils">
      <summary>Utilities for working with Gallio projects.</summary>
    </member>
    <member name="M:Gallio.Runner.Projects.ProjectUtils.LoadProject(System.String)">
      <summary>Load a saved Gallio project file.</summary>
      <param name="projectLocation">The location of the project file.</param>
      <returns>A Gallio Project instance.</returns>
      <exception cref="T:System.ArgumentException">Thrown when the specified project location is invalid.</exception>
    </member>
    <member name="M:Gallio.Runner.Projects.ProjectUtils.SaveProject(Gallio.Runner.Projects.Project,System.String)">
      <summary>Save a Gallio project to disk.</summary>
      <param name="project">The Project instance to save.</param>
      <param name="projectLocation">The location to save it to.</param>
    </member>
    <member name="T:Gallio.Runner.Reports.DefaultReportManager">
      <summary>The default implementation of <see cref="T:Gallio.Runner.Reports.IReportManager" />.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.DefaultReportManager.FormatterResolver">
      <summary>Gets a resolver for resolving registered <see cref="T:Gallio.Runner.Reports.IReportFormatter" /> components by name.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportManager.CreateReportReader(Gallio.Runner.Reports.IReportContainer)">
      <summary>Gets a report reader to load a report from the specified container.</summary>
      <param name="reportContainer">The report container</param>
      <returns>The report reader</returns>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportManager.CreateReportWriter(Gallio.Runner.Reports.Report,Gallio.Runner.Reports.IReportContainer)">
      <summary>Gets a report writer to save or format a report to the specified container.</summary>
      <param name="report">The report</param>
      <param name="reportContainer">The report container</param>
      <returns>The report writer</returns>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportManager.Format(Gallio.Runner.Reports.IReportWriter,System.String,Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Formats the report indicated by the report writer.</summary>
      <param name="reportWriter">The report writer</param>
      <param name="formatterName">The formatter name</param>
      <param name="formatterOptions">The report formatter options</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="T:Gallio.Runner.Reports.DefaultReportReader">
      <summary>Default implementation of a report reader.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.DefaultReportReader.ReportContainer">
      <summary>Gets the report container.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportReader.LoadReport(System.Boolean,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Loads the report from an XML file. </para>
        <para> The path of the saved report is constructed by appending the extension ".xml" to the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" />. </para>
      </summary>
      <param name="loadAttachmentContents">If true, loads attachment contents in referenced content files if they were not embedded otherwise the attachment contents are not loaded (but may be loaded later using <see cref="M:Gallio.Runner.Reports.IReportReader.LoadReportAttachments(Gallio.Runner.Reports.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />).</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The loaded report</returns>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportReader.LoadReportAttachments(Gallio.Runner.Reports.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Loads referenced report attachments from the container. </para>
        <para> This method has the effect of populating the contents of all <see cref="T:Gallio.Model.Logging.AttachmentData" /> nodes in the report that have non-null <see cref="P:Gallio.Model.Logging.AttachmentData.ContentPath" />. </para>
      </summary>
      <param name="report">The report whose attachments are to be loaded</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="T:Gallio.Runner.Reports.DefaultReportWriter">
      <summary>Default implementation of a report writer.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.DefaultReportWriter.Report">
      <summary>Gets the report being generated.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.DefaultReportWriter.ReportContainer">
      <summary>Gets the report container.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.DefaultReportWriter.ReportDocumentPaths">
      <summary>Gets the paths of all report documents that have been generated within the report container. Report documents are the primary files when reports are formatted or saved such as an XML file, a Text file, or the main HTML file that contains the body of the report.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportWriter.AddReportDocumentPath(System.String)">
      <summary>Adds the path of a report document that has been created within the report container.</summary>
      <param name="path">The document path</param>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportWriter.SaveReport(Gallio.Model.Logging.AttachmentContentDisposition,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Saves the report as an XML file. </para>
        <para> The saved report XML file is automatically added to the <see cref="P:Gallio.Runner.Reports.IReportWriter.ReportDocumentPaths" /> list. </para>
        <para> The path of the saved report is constructed by appending the extension ".xml" to the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" />. </para>
      </summary>
      <param name="attachmentContentDisposition">The content disposition to use for all attachments. If the content disposition is <see cref="F:Gallio.Model.Logging.AttachmentContentDisposition.Link" /> then this method will automatically call <see cref="M:Gallio.Runner.Reports.IReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> to save the attachments.</param>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Saves all report attachments as individual content files to the container. </para>
        <para> The convention for attachments is to save them in a directory with the same name as the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" /> arranged in folders first by test id then by step id then by attachment name. For example: "Report\{testid}\{stepid}\attachment.jpg". </para>
      </summary>
      <param name="progressMonitor">The progress monitor</param>
    </member>
    <member name="M:Gallio.Runner.Reports.DefaultReportWriter.SerializeReport(System.Xml.XmlWriter,Gallio.Model.Logging.AttachmentContentDisposition)">
      <summary>Serializes the report to XML.</summary>
      <param name="xmlWriter">The XML writer</param>
      <param name="attachmentContentDisposition">The content disposition to use for all attachments</param>
    </member>
    <member name="T:Gallio.Runner.Reports.FileSystemReportContainer">
      <summary>A file-system based representation of a report container that uses ordinary files and folders to store report contents.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.FileSystemReportContainer.ReportDirectory">
      <summary>Gets the full-path of the report directory.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.FileSystemReportContainer.ReportName">
      <summary>
        <para> Gets the base name of the report. </para>
        <para> Logical files and folders associated with the report all begin with this name and are disambiguated by extension. </para>
      </summary>
    </member>
    <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.DeleteReport">
      <summary>Deletes the entire contents of the report in all of its formats.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.EncodeFileName(System.String)">
      <summary>Replaces invalid characters in a file or directory name with underscores and trims it if it is too long.</summary>
      <param name="fileName">The file or directory name</param>
      <returns>The encoded file or directory name</returns>
    </member>
    <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.OpenRead(System.String)">
      <summary>Opens a report file for reading.</summary>
      <param name="path">The relative path of the report file within the container</param>
      <returns>The stream</returns>
    </member>
    <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.OpenWrite(System.String,System.String,System.Text.Encoding)">
      <summary>
        <para> Opens a report file for writing, overwriting any previous file with the same name. </para>
        <para> It is not necessary to create "directories" within the container. They are automatically created when new files are opened for writing within them. </para>
      </summary>
      <param name="path">The path of the report file</param>
      <param name="contentType">The content type of the file, or null if not specified</param>
      <param name="encoding">The text encoding of the file, or null if not specified or if the file is binary</param>
      <returns>The stream</returns>
    </member>
    <member name="T:Gallio.Runner.Reports.LogEntry">
      <summary>Describes a log entry for reporting purposes.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.LogEntry.Details">
      <summary>Gets or sets the log message details, such as an exception.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.LogEntry.Message">
      <summary>Gets or sets the log message.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.LogEntry.Severity">
      <summary>Gets or sets the log message severity.</summary>
    </member>
    <member name="T:Gallio.Runner.Reports.Report">
      <summary>A report includes a description of the test package, the model objects, the combined results of all test runs and summary statistics. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Report.LogEntries">
      <summary>Gets a mutable list of log entries.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Report.TestModel">
      <summary>Gets or sets the test model, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Report.TestPackageConfig">
      <summary>Gets or sets the test package configuration, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Report.TestPackageRun">
      <summary>Gets or sets the test package run results, or null if none.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.Report.AddLogEntry(Gallio.Runner.Reports.LogEntry)">
      <summary>Adds a log entry to the report.</summary>
      <param name="logEntry">The log entry to add</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logEntry" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.ReportContainerUtils">
      <summary>Utilities for working with <see cref="T:Gallio.Runner.Reports.IReportContainer" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.ReportContainerUtils.CopyToReport(Gallio.Runner.Reports.IReportContainer,System.String,System.String)">
      <summary>Recursively copies files and folders from the source path in the native file system to the destination path within the report container.</summary>
      <param name="container">The container</param>
      <param name="sourcePathInFileSystem">The source file or directory path in the native file system</param>
      <param name="destPathInContainer">The destination file or directory path in the report container</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="container" />, <paramref name="sourcePathInFileSystem" /> or <paramref name="destPathInContainer" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.ReportFormatterOptions">
      <summary>Provides options to report formatters. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.ReportFormatterOptions.Properties">
      <summary>Gets a mutable collection of key/value pairs that specify configuration properties for the report formatter.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.ReportFormatterOptions.Copy">
      <summary>Creates a copy of the options.</summary>
      <returns>The copy</returns>
    </member>
    <member name="T:Gallio.Runner.Reports.Statistics">
      <summary>Collects summary statistics about test execution for reporting purposes. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.AssertCount">
      <summary>Gets or sets the number of assertions evaluated.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.Duration">
      <summary>Gets or sets the total duration summarized tests in seconds.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.FailedCount">
      <summary>Gets or sets the number of test cases that ran and failed.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.InconclusiveCount">
      <summary>Gets or sets the number of test cases that ran and were inconclusive.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.OutcomeSummaries">
      <summary>Gets or sets the test outcome summaries.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.PassedCount">
      <summary>Gets or sets the number of test cases that ran and passed.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.RunCount">
      <summary>Gets or sets the number of test cases that were run.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.SkippedCount">
      <summary>Gets or sets the number of test cases that did not run.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.StepCount">
      <summary>Gets or sets the total number of test steps.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.Statistics.TestCount">
      <summary>Gets or sets the total number of test cases.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.Statistics.AddOutcome(Gallio.Model.TestOutcome)">
      <summary>Updates the test outcome statistics counters with an the outcome of a test.</summary>
      <param name="outcome">The test outcome</param>
    </member>
    <member name="M:Gallio.Runner.Reports.Statistics.FormatTestCaseResultSummary">
      <summary>Formats a single line of text summarizing test case results.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.Statistics.GetOutcomeCount(Gallio.Model.TestOutcome)">
      <summary>Gets the number of tests with the specified outcome.</summary>
      <param name="outcome">The outcome</param>
      <returns>The number of tests with the specified outcome</returns>
    </member>
    <member name="M:Gallio.Runner.Reports.Statistics.MergeStepStatistics(Gallio.Runner.Reports.TestStepRun)">
      <summary>Merges statistics from a test step run, incrementing the relevant counters.</summary>
      <param name="testStepRun">The test step run</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStepRun" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.Statistics.SetOutcomeCount(Gallio.Model.TestOutcome,System.Int32)">
      <summary>Ssets the number of tests with the specified outcomee.</summary>
      <param name="outcome">The outcome</param>
      <param name="count">The count</param>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="count" /> is less than 0</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.TestOutcomeSummary">
      <summary>Describes the number of test cases with a particular <see cref="T:Gallio.Model.TestOutcome" />. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestOutcomeSummary.Count">
      <summary>Gets or sets the number of test cases with the specified outcome.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestOutcomeSummary.Outcome">
      <summary>Gets or sets the outcome.</summary>
    </member>
    <member name="T:Gallio.Runner.Reports.TestPackageRun">
      <summary>Summarizes the execution of a test package for reporting purposes. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestPackageRun.AllTestStepRuns">
      <summary>Recursively enumerates all test step runs including the root test step run.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestPackageRun.EndTime">
      <summary>Gets or sets the time when the package run ended.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestPackageRun.RootTestStepRun">
      <summary>Gets or sets the root test step run, or null if the root test has not run.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestPackageRun.StartTime">
      <summary>Gets or sets the time when the package run started.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestPackageRun.Statistics">
      <summary>Gets or sets the statistics for the package run.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.TestStepRun">
      <summary>Summarizes the execution of a single test step for reporting purposes. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.AllTestStepRuns">
      <summary>Recursively enumerates all test step runs including this one.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.Children">
      <summary>Gets the list of child step runs.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.EndTime">
      <summary>Gets or sets the time when the test run ended.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.Result">
      <summary>Gets or sets the test result from the run.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.StartTime">
      <summary>Gets or sets the time when the test run started.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.Step">
      <summary>Gets or sets information about the step.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runner.Reports.TestStepRun.TestLog">
      <summary>Gets or sets the test log.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.IReportContainer">
      <summary>
        <para> A report container is used to load or save the contents of a report. A report container consists of zero or more logical report files distinguished by extension and a content folder. The content folder holds attachment contents and format-specific resources. </para>
        <para> The definition of a report container is necessarily somewhat abstract. It is intended to allow the files associated with report rendered in multiple formats to coexist side by side unambiguously and without duplication of common attachment contents. </para>
        <para> Paths within reports are always specified relative to the root of the container with each path segment delimited by backslashes. The first path segment must be <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" />, optionally with an extra period-delimited extension. For example, if <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" nolink="true" /> is <c>"Report"</c> then <c>"Report.xml"</c> and <c>"Report/Contents.txt"</c> are valid paths but <c>"Bar"</c> and <c>"Report-NotAnExtension"</c> are not. </para>
        <para> By convention report content such as attachments and images are stored in a folder with the same name as <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" nolink="true" />. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.Reports.IReportContainer.ReportName">
      <summary>
        <para> Gets the base name of the report. </para>
        <para> Logical files and folders associated with the report all begin with this name and are disambiguated by extension. </para>
      </summary>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportContainer.DeleteReport">
      <summary>Deletes the entire contents of the report in all of its formats.</summary>
      <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportContainer.EncodeFileName(System.String)">
      <summary>Replaces invalid characters in a file or directory name with underscores and trims it if it is too long.</summary>
      <param name="fileName">The file or directory name</param>
      <returns>The encoded file or directory name</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileName" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportContainer.OpenRead(System.String)">
      <summary>Opens a report file for reading.</summary>
      <param name="path">The relative path of the report file within the container</param>
      <returns>The stream</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path" /> is null</exception>
      <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportContainer.OpenWrite(System.String,System.String,System.Text.Encoding)">
      <summary>
        <para> Opens a report file for writing, overwriting any previous file with the same name. </para>
        <para> It is not necessary to create "directories" within the container. They are automatically created when new files are opened for writing within them. </para>
      </summary>
      <param name="path">The path of the report file</param>
      <param name="contentType">The content type of the file, or null if not specified</param>
      <param name="encoding">The text encoding of the file, or null if not specified or if the file is binary</param>
      <returns>The stream</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path" /> is null</exception>
      <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.IReportFormatter">
      <summary>A report formatter provides a strategy for formatting reports for human consumption.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportFormatter.Format(Gallio.Runner.Reports.IReportWriter,Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Formats the report indicated by the report writer.</summary>
      <param name="reportWriter">The report writer</param>
      <param name="formatterOptions">The report formatter options</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportWriter" />, <paramref name="formatterOptions" /> or <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.IReportManager">
      <summary>The report manager provides services for manipulating reports.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.IReportManager.FormatterResolver">
      <summary>Gets a resolver for resolving registered <see cref="T:Gallio.Runner.Reports.IReportFormatter" /> components by name.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportManager.CreateReportReader(Gallio.Runner.Reports.IReportContainer)">
      <summary>Gets a report reader to load a report from the specified container.</summary>
      <param name="reportContainer">The report container</param>
      <returns>The report reader</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportContainer" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportManager.CreateReportWriter(Gallio.Runner.Reports.Report,Gallio.Runner.Reports.IReportContainer)">
      <summary>Gets a report writer to save or format a report to the specified container.</summary>
      <param name="report">The report</param>
      <param name="reportContainer">The report container</param>
      <returns>The report writer</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report" /> or <paramref name="reportContainer" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportManager.Format(Gallio.Runner.Reports.IReportWriter,System.String,Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>Formats the report indicated by the report writer.</summary>
      <param name="reportWriter">The report writer</param>
      <param name="formatterName">The formatter name</param>
      <param name="formatterOptions">The report formatter options</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportWriter" />, <paramref name="formatterName" />, <paramref name="formatterOptions" /> or <paramref name="progressMonitor" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if there is no formatter with the specified name</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.IReportReader">
      <summary>A report writer provides services for loading a previously saved report from a <see cref="T:Gallio.Runner.Reports.IReportContainer" />.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.IReportReader.ReportContainer">
      <summary>Gets the report container.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportReader.LoadReport(System.Boolean,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Loads the report from an XML file. </para>
        <para> The path of the saved report is constructed by appending the extension ".xml" to the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" />. </para>
      </summary>
      <param name="loadAttachmentContents">If true, loads attachment contents in referenced content files if they were not embedded otherwise the attachment contents are not loaded (but may be loaded later using <see cref="M:Gallio.Runner.Reports.IReportReader.LoadReportAttachments(Gallio.Runner.Reports.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" />).</param>
      <param name="progressMonitor">The progress monitor</param>
      <returns>The loaded report</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportReader.LoadReportAttachments(Gallio.Runner.Reports.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Loads referenced report attachments from the container. </para>
        <para> This method has the effect of populating the contents of all <see cref="T:Gallio.Model.Logging.AttachmentData" /> nodes in the report that have non-null <see cref="P:Gallio.Model.Logging.AttachmentData.ContentPath" />. </para>
      </summary>
      <param name="report">The report whose attachments are to be loaded</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report" /> or <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="T:Gallio.Runner.Reports.IReportWriter">
      <summary>
        <para> A report writer provides services for formatting or saving a report to a <see cref="T:Gallio.Runner.Reports.IReportContainer" />. </para>
        <para> The writer tracks the paths of the report documents paths that are created within the report container. Likewise it remembers whether attachments have been saved so as to avoid redundantly resaving them when the same report is generated in multiple formats. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runner.Reports.IReportWriter.Report">
      <summary>Gets the report being generated.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.IReportWriter.ReportContainer">
      <summary>Gets the report container.</summary>
    </member>
    <member name="P:Gallio.Runner.Reports.IReportWriter.ReportDocumentPaths">
      <summary>Gets the paths of all report documents that have been generated within the report container. Report documents are the primary files when reports are formatted or saved such as an XML file, a Text file, or the main HTML file that contains the body of the report.</summary>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportWriter.AddReportDocumentPath(System.String)">
      <summary>Adds the path of a report document that has been created within the report container.</summary>
      <param name="path">The document path</param>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportWriter.SaveReport(Gallio.Model.Logging.AttachmentContentDisposition,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Saves the report as an XML file. </para>
        <para> The saved report XML file is automatically added to the <see cref="P:Gallio.Runner.Reports.IReportWriter.ReportDocumentPaths" /> list. </para>
        <para> The path of the saved report is constructed by appending the extension ".xml" to the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" />. </para>
      </summary>
      <param name="attachmentContentDisposition">The content disposition to use for all attachments. If the content disposition is <see cref="F:Gallio.Model.Logging.AttachmentContentDisposition.Link" /> then this method will automatically call <see cref="M:Gallio.Runner.Reports.IReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)" /> to save the attachments.</param>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
      <summary>
        <para> Saves all report attachments as individual content files to the container. </para>
        <para> The convention for attachments is to save them in a directory with the same name as the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName" /> arranged in folders first by test id then by step id then by attachment name. For example: "Report\{testid}\{stepid}\attachment.jpg". </para>
      </summary>
      <param name="progressMonitor">The progress monitor</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> is null</exception>
    </member>
    <member name="M:Gallio.Runner.Reports.IReportWriter.SerializeReport(System.Xml.XmlWriter,Gallio.Model.Logging.AttachmentContentDisposition)">
      <summary>Serializes the report to XML.</summary>
      <param name="xmlWriter">The XML writer</param>
      <param name="attachmentContentDisposition">The content disposition to use for all attachments</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xmlWriter" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.CorrelatedExceptionEventArgs">
      <summary>Describes an exception that is to be reported. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.CorrelatedExceptionEventArgs.Exception">
      <summary>Gets the exception that occurred.</summary>
    </member>
    <member name="P:Gallio.Runtime.CorrelatedExceptionEventArgs.IsRecursive">
      <summary>Returns true if a second exception occurred while attempting to report a previous exception on the same thread.</summary>
    </member>
    <member name="P:Gallio.Runtime.CorrelatedExceptionEventArgs.Message">
      <summary>Gets the message associated with the exception.</summary>
    </member>
    <member name="P:Gallio.Runtime.CorrelatedExceptionEventArgs.ReporterStackTrace">
      <summary>Gets the stack trace of the code that called to report the exception or null if not available.</summary>
    </member>
    <member name="M:Gallio.Runtime.CorrelatedExceptionEventArgs.AddCorrelationMessage(System.String)">
      <summary>Adds a message that serves to describe the context in which the exception occurred. The <see cref="P:Gallio.Runtime.CorrelatedExceptionEventArgs.Message" /> will be augmented with these details.</summary>
      <param name="correlationMessage">The correlation message to append</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="correlationMessage" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.CorrelatedExceptionEventArgs.GetDescription">
      <summary>Formats a description of the exception to a string like: "Message\nException\nReported by: ReporterStackTrace".</summary>
      <returns>The formatted string</returns>
    </member>
    <member name="T:Gallio.Runtime.GallioSectionHandler">
      <summary>A configuration section handler for Gallio used to register Gallio components in applications and in plugins.</summary>
    </member>
    <member name="F:Gallio.Runtime.GallioSectionHandler.SectionName">
      <summary>The name of the Gallio section: "gallio". This field is constant and read-only.</summary>
    </member>
    <member name="M:Gallio.Runtime.GallioSectionHandler.Create(System.Object,System.Object,System.Xml.XmlNode)">
      <summary>Creates a configuration section handler.</summary>
      <param name="parent">Parent object.</param>
      <param name="configContext">Configuration context object.</param>
      <param name="section">Section XML node.</param>
      <returns>The created section handler object.</returns>
    </member>
    <member name="T:Gallio.Runtime.InstallationConfiguration">
      <summary>Describes the configuration of a Gallio installation.</summary>
    </member>
    <member name="P:Gallio.Runtime.InstallationConfiguration.AdditionalPluginDirectories">
      <summary>Gets the list of additional plugin directories.</summary>
    </member>
    <member name="P:Gallio.Runtime.InstallationConfiguration.DevelopmentRuntimePath">
      <summary>
        <para> Gets or sets the runtime path of the development copy of Gallio to use for running tests, or null if not applicable. </para>
        <para> To facilitate development of Gallio, it is possible to redirect an out-of-process or isolated app-domain test runner to a different version of Gallio. That way a standard installation of Gallio can be running in the IDE and then delegating to the development version when it actually needs to run tests. </para>
        <para> Of course, this mechanism can only hook into certain APIs like the test runner API. Consequently it may still be necessary to reinstall Gallio and/or restart the IDE if the objective is to test changes made to the IDE add-ins themselves. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runtime.InstallationConfiguration.InstallationFolder">
      <summary>Get or sets the folder where Gallio was installed, or null if Gallio is not installed.</summary>
    </member>
    <member name="P:Gallio.Runtime.InstallationConfiguration.InstalledVersion">
      <summary>Get or sets the version that was installed, or null if Gallio is not installed.</summary>
    </member>
    <member name="M:Gallio.Runtime.InstallationConfiguration.IsDevelopmentRuntimePathValid">
      <summary>Returns true if <see cref="P:Gallio.Runtime.InstallationConfiguration.DevelopmentRuntimePath" /> is set and refers to a directory that exists.</summary>
      <returns>True if the development runtime path is valid</returns>
    </member>
    <member name="M:Gallio.Runtime.InstallationConfiguration.LoadFromRegistry">
      <summary>Loads the configuration from the registry.</summary>
      <returns>The installed configuration</returns>
    </member>
    <member name="T:Gallio.Runtime.ProcessTypeDetection">
      <summary>Detects the kind of process that is being used. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProcessTypeDetection.ProcessType">
      <summary>Gets the process type of the current process.</summary>
    </member>
    <member name="T:Gallio.Runtime.RuntimeAccessor">
      <summary>Provides functions for obtaining runtime services. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.RuntimeAccessor.Instance">
      <summary>Gets the runtime instance.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the runtime has not been initialized</exception>
    </member>
    <member name="P:Gallio.Runtime.RuntimeAccessor.IsInitialized">
      <summary>Returns true if the runtime has been initialized.</summary>
    </member>
    <member name="P:Gallio.Runtime.RuntimeAccessor.Logger">
      <summary>Gets the runtime's logger, or a <see cref="T:Gallio.Runtime.Logging.NullLogger" /> if the runtime is not initialized.</summary>
    </member>
    <member name="P:Gallio.Runtime.RuntimeAccessor.RuntimePath">
      <summary>Gets the path of the Gallio runtime components.</summary>
      <value>The runtime path</value>
    </member>
    <member name="M:Gallio.Runtime.RuntimeAccessor.SetRuntime(Gallio.Runtime.IRuntime)">
      <summary>
        <para> Sets the runtime instance. </para>
        <para> This method should only be used by applications that host Gallio and not generally by client code. </para>
      </summary>
      <param name="runtime">The runtime instance, or null if none</param>
    </member>
    <member name="E:Gallio.Runtime.RuntimeAccessor.InstanceChanged">
      <summary>The event dispatched when the value of the current runtime <see cref="P:Gallio.Runtime.RuntimeAccessor.Instance" /> changes.</summary>
    </member>
    <member name="T:Gallio.Runtime.RuntimeBootstrap">
      <summary>Initializes and shuts down the runtime. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.RuntimeBootstrap.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>
        <para> Initializes the runtime. </para>
        <para> Loads plugins and initalizes the runtime component model. The specifics of the system can be configured by editing the appropriate *.plugin files to register new components and facilities as required. </para>
      </summary>
      <param name="setup">The runtime setup parameters</param>
      <param name="logger">The runtime logging service</param>
      <returns>An object that when disposed automatically calls <see cref="M:Gallio.Runtime.RuntimeBootstrap.Shutdown" />. This is particularly useful in combination with the C# "using" statement or its equivalent.</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="setup" /> or <paramref name="logger" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the runtime has already been initialized</exception>
    </member>
    <member name="M:Gallio.Runtime.RuntimeBootstrap.Shutdown">
      <summary>Shuts down the runtime if it is currently initialized. Does nothing if the runtime has not been initialized.</summary>
    </member>
    <member name="T:Gallio.Runtime.RuntimeDetection">
      <summary>Provides functions for detecting CLR runtime parameters.</summary>
    </member>
    <member name="P:Gallio.Runtime.RuntimeDetection.IsUsingMono">
      <summary>Returns true if the application is running within the Mono runtime.</summary>
    </member>
    <member name="M:Gallio.Runtime.RuntimeDetection.CreateReentrantProcessStartInfo(System.String,System.String)">
      <summary>When using Mono, creates <see cref="T:System.Diagnostics.ProcessStartInfo" /> that re-enters the Mono runtime if the executable is .Net otherwise creates a standard process start info.</summary>
      <param name="executablePath">The executable path</param>
      <param name="arguments">The arguments</param>
      <returns>The process start info</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath" /> or <paramref name="arguments" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.RuntimeDetection.GetRuntimeVersion">
      <summary>Gets the .Net runtime version installed and currently running.</summary>
      <returns>The runtime version</returns>
    </member>
    <member name="T:Gallio.Runtime.RuntimeException">
      <summary>An exception that expresses a problem performing a runtime service.</summary>
    </member>
    <member name="T:Gallio.Runtime.RuntimeRegisteredComponentResolver`1">
      <summary>A default implementation of <see cref="T:Gallio.Runtime.IRegisteredComponentResolver`1" /> based on <see cref="T:Gallio.Runtime.IRuntime" />.</summary>
    </member>
    <member name="M:Gallio.Runtime.RuntimeRegisteredComponentResolver`1.GetNames">
      <summary>Gets the names of all registered components.</summary>
      <returns>The list of registered component names</returns>
    </member>
    <member name="M:Gallio.Runtime.RuntimeRegisteredComponentResolver`1.Resolve(System.String)">
      <summary>Resolves a registered component by name.</summary>
      <param name="name">The name of the registered component, matched case-insensitively</param>
      <returns>The test runner factory, or null if none exist with the specified name</returns>
    </member>
    <member name="T:Gallio.Runtime.RuntimeSetup">
      <summary>Provides configuration parameters for setting up the <see cref="T:Gallio.Runtime.RuntimeAccessor" />. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.RuntimeSetup.ConfigurationFilePath">
      <summary>Gets or sets the path of the primary configuration file to be loaded by the runtime (if it exists). This is useful when Gallio is launched by a library instead of as a standalone executable.</summary>
      <value>The primary configuration file path. Default is null to load the configuration from the <see cref="T:System.AppDomain" />.</value>
    </member>
    <member name="P:Gallio.Runtime.RuntimeSetup.InstallationConfiguration">
      <summary>Gets or sets the installation configuration which specifies characteristics about the Gallio installation on the local machine, or null to determine it automatically.</summary>
      <value>The installation configuration. Default is <c>null</c>.</value>
    </member>
    <member name="P:Gallio.Runtime.RuntimeSetup.PluginDirectories">
      <summary>Gets list of relative or absolute paths of directories to be searched for plugin configuration files in addition to the primary Gallio directories.</summary>
    </member>
    <member name="P:Gallio.Runtime.RuntimeSetup.RuntimePath">
      <summary>Gets or sets the runtime path, or null to determine it automatically based on the location of the primary runtime assemblies. The runtime path specifies where the standard runtime plugins are located.</summary>
      <value>The installation path. Default is <c>null</c>.</value>
    </member>
    <member name="M:Gallio.Runtime.RuntimeSetup.Canonicalize(System.String)">
      <summary>Makes all paths in this instance absolute.</summary>
      <param name="baseDirectory">The base directory for resolving relative paths, or null to use the current directory</param>
    </member>
    <member name="M:Gallio.Runtime.RuntimeSetup.Copy">
      <summary>Creates a deep copy of the runtime setup parameters.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.RuntimeSetup.SetConfigurationFilePathFromAssembly(System.Reflection.Assembly)">
      <summary>Sets the configuration file path to the *.config file associated with an assembly.</summary>
      <param name="assembly">The assembly</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.UnhandledExceptionPolicy">
      <summary>
        <para> This class provides a mechanism for reporting unhandled exceptions when the infrastructure is otherwise unable to deal with them locally. </para>
        <para> The methods of this class should be considered as the last resort for reporting failures that might otherwise cause the system to crash. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.UnhandledExceptionPolicy.HasReportUnhandledExceptionHandler">
      <summary>
        <para> Returns true if there is at least one handler registered for <see cref="E:Gallio.Runtime.UnhandledExceptionPolicy.ReportUnhandledException" />. </para>
        <para> This property can be used to avoid duplicate exception reporting if some other system component has already registered a handler. </para>
      </summary>
    </member>
    <member name="M:Gallio.Runtime.UnhandledExceptionPolicy.Report(System.String,System.Exception)">
      <summary>Reports an unhandled exception.</summary>
      <param name="message">A message to explain how the exception was intercepted</param>
      <param name="unhandledException">The unhandled exception</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message" /> or <paramref name="unhandledException" /> is null</exception>
    </member>
    <member name="E:Gallio.Runtime.UnhandledExceptionPolicy.CorrelateUnhandledException">
      <summary>Adds or removes an event handler that is notified when unhandled exceptions occur and is given a chance to add additional information the event about the context in which the exception occurred.</summary>
    </member>
    <member name="E:Gallio.Runtime.UnhandledExceptionPolicy.ReportUnhandledException">
      <summary>Adds or removes an event handler that is notified when unhandled exceptions occur.</summary>
    </member>
    <member name="T:Gallio.Runtime.IRegisteredComponent">
      <summary>A registered component is a component that has a name and description.</summary>
    </member>
    <member name="P:Gallio.Runtime.IRegisteredComponent.Description">
      <summary>Gets the human-readable description of the component.</summary>
    </member>
    <member name="P:Gallio.Runtime.IRegisteredComponent.Name">
      <summary>Gets the unique name of the component.</summary>
    </member>
    <member name="T:Gallio.Runtime.IRegisteredComponentResolver`1">
      <summary>A registered service resolver looks up <see cref="T:Gallio.Runtime.IRegisteredComponent" /> components by name.</summary>
    </member>
    <member name="M:Gallio.Runtime.IRegisteredComponentResolver`1.GetNames">
      <summary>Gets the names of all registered components.</summary>
      <returns>The list of registered component names</returns>
    </member>
    <member name="M:Gallio.Runtime.IRegisteredComponentResolver`1.Resolve(System.String)">
      <summary>Resolves a registered component by name.</summary>
      <param name="name">The name of the registered component, matched case-insensitively</param>
      <returns>The test runner factory, or null if none exist with the specified name</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.IRuntime">
      <summary>
        <para> The runtime is instantiated within the test runner to provide a suitable hosting environment for test enumeration and execution. </para>
        <para> The runtime provides services to support the Gallio test automation platform. New services are typically registered by adding them to plugin configuration files. </para>
      </summary>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.GetPluginAssemblyPaths">
      <summary>Gets the paths and assembly names of all plugin assemblies.</summary>
      <returns>The paths</returns>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.GetRuntimeSetup">
      <summary>Gets a deep copy of the runtime setup used to configure this runtime.</summary>
      <returns>The runtime setup</returns>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.Initialize(Gallio.Runtime.Logging.ILogger)">
      <summary>Initializes the runtime.</summary>
      <param name="logger">The runtime logging service</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger" /> is null</exception>
      <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the runtime could not be initialized</exception>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.MapUriToLocalPath(System.Uri)">
      <summary>Maps a Uri to a local path.</summary>
      <param name="uri">The uri to map</param>
      <returns>The local path</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="uri" /> cannot be mapped to a local path</exception>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.Resolve(System.String)">
      <summary>Resolves a reference to a component with the given id.</summary>
      <param name="componentId">The componentId</param>
      <returns>A component with the specified id</returns>
      <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the component could not be resolved</exception>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.Resolve(System.Type)">
      <summary>Resolves a reference to a component that implements the specified service.</summary>
      <param name="service">The service type</param>
      <returns>A component that implements the service</returns>
      <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the service could not be resolved</exception>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.Resolve``1">
      <summary>Resolves a reference to a component that implements the specified service.</summary>
      <typeparam name="T">The service type</typeparam>
      <returns>A component that implements the service</returns>
      <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the service could not be resolved</exception>
    </member>
    <member name="M:Gallio.Runtime.IRuntime.ResolveAll``1">
      <summary>Resolves references to all components that implement the specified service.</summary>
      <typeparam name="T">The service type</typeparam>
      <returns>An array of components that implement the service</returns>
      <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the service could not be resolved</exception>
    </member>
    <member name="T:Gallio.Runtime.ProcessType">
      <summary>Describes the kind of process that is executing.</summary>
    </member>
    <member name="F:Gallio.Runtime.ProcessType.Console">
      <summary>The process is running in the console.</summary>
    </member>
    <member name="F:Gallio.Runtime.ProcessType.Interactive">
      <summary>The process is running interactively.</summary>
    </member>
    <member name="F:Gallio.Runtime.ProcessType.Service">
      <summary>The process is running as a Windows service.</summary>
    </member>
    <member name="T:Gallio.Runtime.RuntimeVersion">
      <summary>Specifies the version of the runtime.</summary>
    </member>
    <member name="F:Gallio.Runtime.RuntimeVersion.DotNet20">
      <summary>.Net Framework 2.0.</summary>
    </member>
    <member name="F:Gallio.Runtime.RuntimeVersion.DotNet35">
      <summary>.Net Framework 3.5.</summary>
    </member>
    <member name="F:Gallio.Runtime.RuntimeVersion.DotNet40">
      <summary>.Net Framework 4.0.</summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute">
      <summary>Allows control of command line parsing. Attach this attribute to instance fields of types used as the destination of command line argument parsing.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.Description">
      <summary>The description of the argument.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.Flags">
      <summary>The error checking to be done on the argument.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.IsDefaultLongName">
      <summary>Returns true if the argument did not have an explicit long name specified.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.IsDefaultShortName">
      <summary>Returns true if the argument did not have an explicit short name specified.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LongName">
      <summary>The long name of the argument.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.ShortName">
      <summary>The short name of the argument.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.Synonyms">
      <summary>Gets or sets an array of additional synonyms that are silently accepted.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.ValueLabel">
      <summary>The description of the argument value.</summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser">
      <summary>Parser for command line arguments.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.Parse(System.String[],System.Object,Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter)">
      <summary>Parses an argument list.</summary>
      <param name="args">The arguments to parse.</param>
      <param name="destination">The destination of the parsed arguments.</param>
      <param name="reporter">The error reporter</param>
      <returns>True if no parse errors were encountered.</returns>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.ShowUsage(Gallio.Runtime.ConsoleSupport.CommandLineOutput)">
      <summary>Prints a user friendly usage string describing the command line argument syntax.</summary>
      <param name="output">The command line output</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.ShowUsageInMessageBox(System.String)">
      <summary>Prints a user friendly usage string describing the command line argument syntax in a message box.</summary>
      <param name="caption">The message box caption</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="caption" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineOutput">
      <summary>Responsible for creating output.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineOutput.LineLength">
      <summary>Maximum line length allowed before the text will be wraped.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineOutput.Output">
      <summary>Output Stream</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.NewLine">
      <summary>Prints out a new line.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.PrintArgumentHelp(System.String,System.String,System.String,System.String,System.String,System.Type)">
      <summary>Prints help for a specified argument.</summary>
      <param name="prefix">The argument prefix, such as "/", or null or empty if none.</param>
      <param name="longName">The argument's long name, or null or empty if none.</param>
      <param name="shortName">The argument's short short name, or null or empty if none.</param>
      <param name="description">The argument's description, or null or empty if none.</param>
      <param name="valueLabel">The argument's value label such as "path", or null or empty if none.</param>
      <param name="valueType">The argument's value type, or null if none.</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.PrintText(System.String,System.Int32)">
      <summary>Outputs text with specified indentation.</summary>
      <param name="text">Text to output possibly including newlines.</param>
      <param name="indentation">Number of blank spaces to indent the first line.</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.PrintText(System.String,System.Int32,System.Int32)">
      <summary>Outputs text with specified indentation.</summary>
      <param name="text">Text to output possibly including newlines.</param>
      <param name="indentation">Number of blank spaces to indent all but the first line.</param>
      <param name="firstLineIndent">Number of blank spaces to indent the first line.</param>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1">
      <summary>A base class for implementing robust console applications. The subclass should provide a Main method that creates an instance and calls <see cref="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Run(Gallio.Runtime.ConsoleSupport.IRichConsole,System.String[])" />. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ApplicationName">
      <summary>Gets or sets the application name.</summary>
      <value>The name, by default this is the program assembly's name</value>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ApplicationTitle">
      <summary>Get or sets the application title.</summary>
      <value>The title, by default this is constructed from the application's name and version</value>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ApplicationVersion">
      <summary>Gets or sets the application version.</summary>
      <value>The version, by default this is the program assembly's version</value>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ArgumentParser">
      <summary>Gets the argument parser.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Arguments">
      <summary>Gets or sets the parsed command-line arguments. These argument may be modified prior to calling <see cref="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ParseArguments(System.String[])" /> to override the initial argument settings.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.CommandLineOutput">
      <summary>Gets the command-line output formatter, or null if the program is not running.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Console">
      <summary>Gets the console, or null if the program is not running.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.HandleFatalException(System.Exception)">
      <summary>Handles a fatal exception that escaped the <see cref="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.RunImpl(System.String[])" /> method.</summary>
      <param name="ex">The exception</param>
      <returns>The exit code to return</returns>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ParseArguments(System.String[])">
      <summary>Parses the arguments.</summary>
      <param name="args">The command-line arguments</param>
      <returns>True if the arguments were parsed successfully</returns>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Run(Gallio.Runtime.ConsoleSupport.IRichConsole,System.String[])">
      <summary>Runs the program.</summary>
      <param name="console">The console</param>
      <param name="args">The command-line arguments</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="console" /> or <paramref name="args" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the program has already started running</exception>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.RunImpl(System.String[])">
      <summary>Runs the program.</summary>
      <param name="args">The command-line arguments</param>
      <returns>The program exit code</returns>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ShowErrorMessage(System.String)">
      <summary>Displays an error message to the console.</summary>
      <param name="message">The error message</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ShowHelp">
      <summary>Displays help text to the console.</summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.DefaultCommandLineArgumentAttribute">
      <summary>Indicates that this argument is the default argument. '/' or '-' prefix only the argument value is specified.</summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.NativeConsole">
      <summary>
        <para> An implementation of <see cref="T:Gallio.Runtime.ConsoleSupport.IRichConsole" /> that targets the native <see cref="T:System.Console" />. </para>
        <para> This implementation offers protection against redirection of the <see cref="P:System.Console.Out" /> and <see cref="P:System.Console.Error" /> streams. This object will continue to refer to the standard output and error streams even if they are redirected after its initialization. </para>This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressRepetitions">
      <summary>The application will forcibly terminate if the cancel key is pressed <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressRepetitions" /> times within no more than <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressTimeoutMilliseconds" /> milliseconds. This field is constant and read-only.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressTimeoutMilliseconds">
      <summary>The application will forcibly terminate if the cancel key is pressed <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressRepetitions" /> times within no more than <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressTimeoutMilliseconds" /> milliseconds. This field is constant and read-only.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.CursorLeft">
      <summary>Gets the zero-based column index the cursor is located at.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.CursorTop">
      <summary>Gets the zero-based row index the cursor is located at.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Error">
      <summary>Gets the error stream writer.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.FooterVisible">
      <summary>Gets or sets whether the footer is visible.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.ForegroundColor">
      <summary>Gets or sets the foreground color of the console.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Instance">
      <summary>Gets the singleton instance of the native console.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCancelationEnabled">
      <summary>Gets or sets whether the cancelation function is enabled. If false, cancelation events will not be sent.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCanceled">
      <summary>
        <para> Gets or sets whether cancelation has occurred. </para>
        <para> The <see cref="E:Gallio.Runtime.ConsoleSupport.NativeConsole.Cancel" /> event handlers will be called when the value of <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCanceled" /> transitions from false to true. The value will remain true unless it is reset. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected">
      <summary>Returns true if the console is being redirected and therefore the output should be as simple as possible. In particular, it may not be possible to set the cursor position, console color or other properties.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Out">
      <summary>Gets the output stream writer.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.SyncRoot">
      <summary>Gets a synchronization object that a task can lock to ensure that it is the only thread currently accessing the console.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Title">
      <summary>Gets or sets the console's title.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Width">
      <summary>Gets the width of the console. Returns 80 if the console is being redirected.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.ResetColor">
      <summary>Resets the console colors.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.SetFooter(Gallio.Action,Gallio.Action)">
      <summary>Sets a pair of delegates that together display a footer at the bottom of the console. The footer can be hidden so that new text can be written from that point. Removes the previous footer and displays the new one automatically if the footer is visible.</summary>
      <param name="showFooter">A delegate to display the footer</param>
      <param name="hideFooter">A delegate to hide the footer, leaving the custor at the beginning of the line where the footer used to begin</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.Write(System.Char)">
      <summary>Writes a character.</summary>
      <param name="c">The character to write</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.Write(System.String)">
      <summary>Writes a string.</summary>
      <param name="str">The string to write</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.WriteLine">
      <summary>Writes a new line.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.WriteLine(System.String)">
      <summary>Writes a string followed by a new line.</summary>
      <param name="str">The string to write</param>
    </member>
    <member name="E:Gallio.Runtime.ConsoleSupport.NativeConsole.Cancel">
      <summary>
        <para> The event raised when console cancelation occurs. </para>
        <para> If the console cancelation signal is already set when an event handler is added, the event handler will be automatically invoked. </para>
      </summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.RichConsoleLogger">
      <summary>A logger that sends all output to the console and displays messages in color according to their status.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.RichConsoleLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.IRichConsole">
      <summary>
        <para> A rich console provides a number of services that enable a console to be shared among several cooperating tasks that are independently updating different portions of the display. One task can be writing to the main body of text while another updates a footer. </para>
        <para> The rich console also supports intelligent cancelation of tasks. When the user presses control-C, a cancelation flag is set and an event handler is invoked. Tasks can check for the presence of the cancelation flag even if they started execution after the control-C itself occurred. This provides protection against dropped cancelation requests due to race conditions. If the user presses control-C 3 times within a short interval the rich console assumes that the program has become non-responsive and terminates it. </para>
        <para> Finally, the rich console interface can be mocked for testing purposes unlike the standard <see cref="T:System.Console" /> API. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.CursorLeft">
      <summary>Gets the zero-based column index the cursor is located at.</summary>
      <exception cref="T:System.IO.IOException">Thrown if <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected" /> is true</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.CursorTop">
      <summary>Gets the zero-based row index the cursor is located at.</summary>
      <exception cref="T:System.IO.IOException">Thrown if <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected" /> is true</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Error">
      <summary>Gets the error stream writer.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.FooterVisible">
      <summary>Gets or sets whether the footer is visible.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.ForegroundColor">
      <summary>Gets or sets the foreground color of the console.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.IsCancelationEnabled">
      <summary>Gets or sets whether the cancelation function is enabled. If false, cancelation events will not be sent.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.IsCanceled">
      <summary>
        <para> Gets or sets whether cancelation has occurred. </para>
        <para> The <see cref="E:Gallio.Runtime.ConsoleSupport.NativeConsole.Cancel" /> event handlers will be called when the value of <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCanceled" /> transitions from false to true. The value will remain true unless it is reset. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.IsRedirected">
      <summary>Returns true if the console is being redirected and therefore the output should be as simple as possible. In particular, it may not be possible to set the cursor position, console color or other properties.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Out">
      <summary>Gets the output stream writer.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.SyncRoot">
      <summary>Gets a synchronization object that a task can lock to ensure that it is the only thread currently accessing the console.</summary>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Title">
      <summary>Gets or sets the console's title.</summary>
      <exception cref="T:System.IO.IOException">Thrown if <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected" /> is true</exception>
    </member>
    <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Width">
      <summary>Gets the width of the console. Returns 80 if the console is being redirected.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.ResetColor">
      <summary>Resets the console colors.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.SetFooter(Gallio.Action,Gallio.Action)">
      <summary>Sets a pair of delegates that together display a footer at the bottom of the console. The footer can be hidden so that new text can be written from that point. Removes the previous footer and displays the new one automatically if the footer is visible.</summary>
      <param name="showFooter">A delegate to display the footer</param>
      <param name="hideFooter">A delegate to hide the footer, leaving the custor at the beginning of the line where the footer used to begin</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.Write(System.Char)">
      <summary>Writes a character.</summary>
      <param name="c">The character to write</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.Write(System.String)">
      <summary>Writes a string.</summary>
      <param name="str">The string to write</param>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.WriteLine">
      <summary>Writes a new line.</summary>
    </member>
    <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.WriteLine(System.String)">
      <summary>Writes a string followed by a new line.</summary>
      <param name="str">The string to write</param>
    </member>
    <member name="E:Gallio.Runtime.ConsoleSupport.IRichConsole.Cancel">
      <summary>
        <para> The event raised when console cancelation occurs. </para>
        <para> If the console cancelation signal is already set when an event handler is added, the event handler will be automatically invoked. </para>
      </summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags">
      <summary>Used to control parsing of command line arguments.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.Required">
      <summary>Indicates that this field is required. An error will be displayed if it is not present when parsing arguments.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.Unique">
      <summary>Only valid in conjunction with Multiple. Duplicate values will result in an error.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.Multiple">
      <summary>Inidicates that the argument may be specified more than once. Only valid if the argument is a collection</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.AtMostOnce">
      <summary>The default type for non-collection arguments. The argument is not required, but an error will be reported if it is specified more than once.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.LastOccurrenceWins">
      <summary>For non-collection arguments, when the argument is specified more than once no error is reported and the value of the argument is the last value which occurs in the argument list.</summary>
    </member>
    <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.MultipleUnique">
      <summary>The default type for collection arguments. The argument is permitted to occur multiple times, but duplicate values will cause an error to be reported.</summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter">
      <summary>A delegate used in error reporting.</summary>
    </member>
    <member name="T:Gallio.Runtime.ConsoleSupport.ResponseFileReader">
      <summary>Reads the contents of a response file.</summary>
      <param name="responseFileName">The response file name, never null</param>
    </member>
    <member name="T:Gallio.Runtime.Debugging.DefaultDebuggerManager">
      <summary>Default implementation of a debugger manager.</summary>
    </member>
    <member name="M:Gallio.Runtime.Debugging.DefaultDebuggerManager.GetDefaultDebugger">
      <summary>Gets the default debugger.</summary>
      <returns>The default debugger</returns>
    </member>
    <member name="T:Gallio.Runtime.Debugging.NullDebugger">
      <summary>A null implementation of a debugger. All services return do nothing results.</summary>
    </member>
    <member name="M:Gallio.Runtime.Debugging.NullDebugger.AttachToProcess(System.Diagnostics.Process)">
      <summary>Attaches the debugger to a process.</summary>
      <param name="process">The process to which the debugger should be attached</param>
      <returns>A result code to indicate whether the debugger was attached</returns>
    </member>
    <member name="M:Gallio.Runtime.Debugging.NullDebugger.DetachFromProcess(System.Diagnostics.Process)">
      <summary>Detaches the debugger from a process.</summary>
      <param name="process">The process from which the debugger should be detached</param>
      <returns>A result code to indicate whether the debugger was detached</returns>
    </member>
    <member name="M:Gallio.Runtime.Debugging.NullDebugger.IsAttachedToProcess(System.Diagnostics.Process)">
      <summary>Returns true if the debugger is attached to a process.</summary>
      <param name="process">The process to which the debugger should be attached</param>
      <returns>True if the debugger is already attached</returns>
    </member>
    <member name="T:Gallio.Runtime.Debugging.IDebugger">
      <summary>Provides control over a debugger.</summary>
    </member>
    <member name="M:Gallio.Runtime.Debugging.IDebugger.AttachToProcess(System.Diagnostics.Process)">
      <summary>Attaches the debugger to a process.</summary>
      <param name="process">The process to which the debugger should be attached</param>
      <returns>A result code to indicate whether the debugger was attached</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="process" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Debugging.IDebugger.DetachFromProcess(System.Diagnostics.Process)">
      <summary>Detaches the debugger from a process.</summary>
      <param name="process">The process from which the debugger should be detached</param>
      <returns>A result code to indicate whether the debugger was detached</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="process" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Debugging.IDebugger.IsAttachedToProcess(System.Diagnostics.Process)">
      <summary>Returns true if the debugger is attached to a process.</summary>
      <param name="process">The process to which the debugger should be attached</param>
      <returns>True if the debugger is already attached</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="process" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Debugging.IDebuggerManager">
      <summary>Obtains a reference to a debugger.</summary>
    </member>
    <member name="M:Gallio.Runtime.Debugging.IDebuggerManager.GetDefaultDebugger">
      <summary>Gets the default debugger.</summary>
      <returns>The default debugger</returns>
    </member>
    <member name="T:Gallio.Runtime.Debugging.AttachDebuggerResult">
      <summary>Describes different possible outcomes from attaching a debugger to a process.</summary>
    </member>
    <member name="F:Gallio.Runtime.Debugging.AttachDebuggerResult.CouldNotAttach">
      <summary>The debugger could not attach to the process.</summary>
    </member>
    <member name="F:Gallio.Runtime.Debugging.AttachDebuggerResult.AlreadyAttached">
      <summary>The debugger was already attached to the process.</summary>
    </member>
    <member name="F:Gallio.Runtime.Debugging.AttachDebuggerResult.Attached">
      <summary>The debugger has just been attached to the process.</summary>
    </member>
    <member name="T:Gallio.Runtime.Debugging.DetachDebuggerResult">
      <summary>Describes different possible outcomes from detaching a debugger from a process.</summary>
    </member>
    <member name="F:Gallio.Runtime.Debugging.DetachDebuggerResult.CouldNotDetach">
      <summary>The debugger could not be detached from the process and remains attached.</summary>
    </member>
    <member name="F:Gallio.Runtime.Debugging.DetachDebuggerResult.AlreadyDetached">
      <summary>The debugger was already detached from the process.</summary>
    </member>
    <member name="F:Gallio.Runtime.Debugging.DetachDebuggerResult.Detached">
      <summary>The debugger has just been detached from the process.</summary>
    </member>
    <member name="T:Gallio.Runtime.Hosting.AppDomainUtils">
      <summary>Utilities for working with AppDomains. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.AppDomainUtils.CreateAppDomain(System.String,System.String,System.String,System.Boolean)">
      <summary>Creates an AppDomain.</summary>
      <param name="applicationName">The application name for the new AppDomain, or null if none</param>
      <param name="applicationBaseDirectory">The application base directory for the new AppDomain, or null to use the current one</param>
      <param name="configurationFile">The configuration file for the new AppDomain, or null to use the current one</param>
      <param name="enableShadowCopy">If true, enables shadow copying within the AppDomain</param>
      <returns>The new AppDomain</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.AppDomainUtils.CreateRemoteInstance(System.AppDomain,System.Type,System.Object[])">
      <summary>Creates a remote instance of a type within another AppDomain.</summary>
      <param name="appDomain">The AppDomain in which to create the instance</param>
      <param name="type">The type to instantiate</param>
      <param name="args">The constructor arguments for the type</param>
      <returns>The remote instance</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="appDomain" /> or <paramref name="type" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.BaseHost">
      <summary>Base implementation of <see cref="T:Gallio.Runtime.Hosting.IHost" /> that performs argument validation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.BaseHost.HostService">
      <summary>Gets an reference to the host service, or null if not connected.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.BaseHost.HostSetup">
      <summary>Gets the internal host setup information without copying it.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.BaseHost.IsConnected">
      <summary>Returns true if the host is connected.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.BaseHost.IsLocal">
      <summary>Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.BaseHost.Logger">
      <summary>Gets the logger.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.AcquireHostService">
      <summary>Gets the host service.</summary>
      <returns>The host service, or null if the host service was not available</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.AttachDebuggerIfNeeded(Gallio.Runtime.Debugging.IDebuggerManager,System.Diagnostics.Process)">
      <summary>Attaches the debugger to a process if the host settings require it.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.Connect">
      <summary>Initializes the host and connects to the host service.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the host has already been initialized</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed</exception>
      <exception cref="T:Gallio.Runtime.Hosting.HostException">Thrown if an exception occurred while connecting to the host</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.DetachDebuggerIfNeeded">
      <summary>Detaches the debugger from a process if the host settings require it.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.Disconnect">
      <summary>Disconnects the host.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.Dispose(System.Boolean)">
      <summary>Disposes the host.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.GetHostService">
      <summary>Gets a host service that can be used to perform operations within the host's environment.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.GetHostSetup">
      <summary>Gets a deep copy of the host setup information.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.NotifyDisconnected">
      <summary>Sets the state of the host to disconnected and notifies clients.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.ReleaseHostService(Gallio.Runtime.Hosting.IHostService)">
      <summary>Releases the host service.</summary>
      <param name="hostService">The host service that is being released, not null</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHost.ThrowIfDisposed">
      <summary>Throws an exception if the host has been disposed.</summary>
    </member>
    <member name="E:Gallio.Runtime.Hosting.BaseHost.Disconnected">
      <summary>An event that is raised when the host is disconnected. If the host has already been disconnected, the event is fired immediately.</summary>
    </member>
    <member name="T:Gallio.Runtime.Hosting.BaseHostFactory">
      <summary>An abstract base class for host factories. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostFactory.CreateHost(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>Creates a host instance.</summary>
      <param name="hostSetup">The host setup</param>
      <param name="logger">The logger for host message output</param>
      <returns>The newly created host</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>Creates the host.</summary>
      <param name="hostSetup">The canonicalized host setup, non-null</param>
      <param name="logger">The logger, non-null</param>
      <returns>The host</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.BaseHostService">
      <summary>Base implementation of <see cref="T:Gallio.Runtime.Hosting.IHostService" /> that performs argument validation. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstance(System.String,System.String)">
      <summary>Creates an instance of a remote object given an assembly name and type name.</summary>
      <param name="assemblyName">The name of assembly that contains the type</param>
      <param name="typeName">The full name of the type</param>
      <returns>The object handle of the instance</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceFrom(System.String,System.String)">
      <summary>Creates an instance of a remote object given an assembly path and type name.</summary>
      <param name="assemblyPath">The path of assembly that contains the type</param>
      <param name="typeName">The full name of the type</param>
      <returns>The object handle of the instance</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceFromImpl(System.String,System.String)">
      <summary>Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceFrom(System.String,System.String)" />.</summary>
      <param name="assemblyPath">The assembly path, not null</param>
      <param name="typeName">The type name, not null</param>
      <returns>The created object handle</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceImpl(System.String,System.String)">
      <summary>Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstance(System.String,System.String)" />.</summary>
      <param name="assemblyName">The assembly name, not null</param>
      <param name="typeName">The type name, not null</param>
      <returns>The created object handle</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.Dispose(System.Boolean)">
      <summary>Disposes the host service.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.Do``2(Gallio.Func{``0,``1},``0)">
      <summary>
        <para> Asks the host to perform the specified action remotely. </para>
        <para> The action must be a serializable delegate so that it can be sent to the host and executed. Generally speaking, this means it must either be a delegate for a static method or its target object must be serializable. The argument and result values must also be serializable (or null). </para>
      </summary>
      <param name="func">The action to perform</param>
      <param name="arg">The argument value, if any</param>
      <returns>The result value, if any</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.DoImpl``2(Gallio.Func{``0,``1},``0)">
      <summary>Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.Do``2(Gallio.Func{``0,``1},``0)" />.</summary>
      <typeparam name="TArg">The argument type</typeparam>
      <typeparam name="TResult">The result type</typeparam>
      <param name="func">The action to perform, not null</param>
      <param name="arg">The argument value, if any</param>
      <returns>The result value, if any</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.Ping">
      <summary>Pings the host to verify and maintain connectivity.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.PingImpl">
      <summary>Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.Ping" />.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.BaseHostService.ThrowIfDisposed">
      <summary>Throws an exception if the host service has been disposed.</summary>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostAssemblyResolverHook">
      <summary>Attaches to a <see cref="T:Gallio.Runtime.Hosting.IHost" /> to provide assembly resolution services. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostAssemblyResolverHook.Bootstrap(Gallio.Runtime.Hosting.IHost,System.String)">
      <summary>
        <para> Installs an assembly resolver that provides access to the installation path using the <see cref="T:Gallio.Runtime.Loader.AssemblyResolverBootstrap" />. </para>
        <para> Does nothing if the host is local. </para>
      </summary>
      <param name="host">The host</param>
      <param name="runtimePath">The Gallio runtime path</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host" /> or <paramref name="runtimePath" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostAssemblyResolverHook.InstallCallback(Gallio.Runtime.Hosting.IHost)">
      <summary>
        <para> Installs an assembly resolver that delegates to the creating <see cref="T:System.AppDomain" />'s assembly resolver to locate assemblies whenever the host is unable to find them. </para>
        <para> Does nothing if the host is local. </para>
      </summary>
      <param name="host">The host</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostConfiguration">
      <summary>Describes the runtime configuration of a <see cref="T:Gallio.Runtime.Hosting.IHost" />. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependencies">
      <summary>Gets a mutable list of assembly dependencies.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualifications">
      <summary>Gets a mutable list of assembly qualifications.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssertUiEnabled">
      <summary>Gets or sets whether the <see cref="M:System.Diagnostics.Debug.Assert(System.Boolean)" /> failure dialog is enabled.</summary>
      <value>The default value is <c>false</c> which prevents the assertion dialog from appearing when an assertion fails.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml">
      <summary>Gets or sets the primary Xml configuration data, or null if none.</summary>
      <value>The default value is <c>null</c>.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.LegacyUnhandledExceptionPolicyEnabled">
      <summary>Gets or sets whether the legacy unhandled exception policy is enabled.</summary>
      <value>The default value is <c>true</c> which prevents the application from terminating abruptly when an unhandled exception occurs.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.RemotingCustomErrorsEnabled">
      <summary>Gets or sets whether remoting exceptions are substituted with custom errors instead of being passed through to the remote client.</summary>
      <value>The default value is <c>false</c> which ensures that the remote client receives all exception details.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.SupportedRuntimeVersions">
      <summary>Gets a mutable list of supported runtime versions in order of preference. When the list is empty, the runtime version used to build the application is used. Otherwise one of the supported runtimes in the list is used.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyBinding(System.Reflection.Assembly,System.Boolean)">
      <summary>Adds a binding to the configuration for the specified assembly.</summary>
      <param name="assembly">The assembly</param>
      <param name="bindingRedirect">True if a catch-all binding redirect should be used to ensure that this exact version of the assembly is loaded no matter which version was originally requested</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyBinding(System.Reflection.AssemblyName,System.String,System.Boolean)">
      <summary>Adds a binding to the configuration for the specified assembly.</summary>
      <param name="assemblyName">The assembly name</param>
      <param name="codeBase">The assembly code base Uri</param>
      <param name="bindingRedirect">True if a catch-all binding redirect should be used to ensure that this exact version of the assembly is loaded no matter which version was originally requested</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName" /> or <paramref name="codeBase" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyDependency(System.String,System.String,System.String,System.String)">
      <summary>Adds an assembly dependency element if a suitable one does not already exist.</summary>
      <param name="name">The assembly name</param>
      <param name="publicKeyToken">The assembly public key token, or null if none</param>
      <param name="culture">The assembly culture</param>
      <param name="architecture">The assembly processor architecture, or null if none</param>
      <returns>The assembly dependency element</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyQualification(System.String,System.String)">
      <summary>Adds an assembly qualification element if a suitable one does not already exist.</summary>
      <param name="partialName">The partial name to quality</param>
      <param name="fullName">The full name</param>
      <returns>The assembly qualification element</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if an assembly qualification already exists for the same partial name but with a different full name</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.Copy">
      <summary>Creates a copy of the host configuration information.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.Equals(Gallio.Runtime.Hosting.HostConfiguration)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.ToString">
      <summary>Overlays the <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml" /> with the additional configuration entries necessary to enable the features described by this instance and returns the combined Xml configuration.</summary>
      <returns>The combined Xml configuration</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.WriteTo(System.IO.TextWriter)">
      <summary>Overlays the <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml" /> with the additional configuration entries necessary to enable the features described by this instance and writes the combined Xml configuration to a <see cref="T:System.IO.TextWriter" />.</summary>
      <param name="textWriter">The TextWriter where the Xml configuration will be written to.</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="textWriter" /> is null.</exception>
      <exception cref="T:System.IO.IOException">Thrown if the configuration could not be written</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.WriteToFile(System.String)">
      <summary>Overlays the <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml" /> with the additional configuration entries necessary to enable the features described by this instance and writes the combined Xml configuration to a file with the given path.</summary>
      <param name="path">The file path</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path" /> is null</exception>
      <exception cref="T:System.IO.IOException">Thrown if the configuration could not be written</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect">
      <summary>Describes an assembly binding redirection from an old version range to a new version. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.NewVersion">
      <summary>Gets or sets the new version to which the binding should be redirected such as "1.2.3.4"</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.OldVersionRange">
      <summary>Gets or sets the range of old versions to redirect, specified either as a single version such as "1.2.3.4" or as a range such as "1.2.3.4-10.11.12.13"</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.Copy">
      <summary>Creates a copy of the assembly binding redirect information.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.Equals(Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase">
      <summary>Describes the location of the codebase of a particular assembly version.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Uri">
      <summary>Gets or sets the Uri that specifies the location of the assembly.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
      <exception cref="T:System.ArgumentException">Thrown if <paramref name="value" /> is not an absolute Uri</exception>
      <exception cref="T:System.UriFormatException">Thrown if <paramref name="value" /> is not a well-formed Uri</exception>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Version">
      <summary>Gets or sets the assembly version to which this element applies such as "1.2.3.4".</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Copy">
      <summary>Creates a copy of the assembly binding redirect information.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Equals(Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency">
      <summary>Describes a dependent assembly configuration entry that optionally specifies the codebase, a publisher policy and binding redirects. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.ApplyPublisherPolicy">
      <summary>Gets or sets whether to apply the publisher policy for this assembly.</summary>
      <value>The default value is true.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyCulture">
      <summary>Gets or sets the assembly culture, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyName">
      <summary>Gets or sets assembly name.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyProcessorArchitecture">
      <summary>Gets or sets the assembly processor architecture, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyPublicKeyToken">
      <summary>Gets or sets the assembly public key token, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.BindingRedirects">
      <summary>Gets a mutable list of assembly binding redirect elements.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.CodeBases">
      <summary>Gets a mutable list of assembly code base elements.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AddAssemblyBindingRedirect(System.String,System.String)">
      <summary>Adds an assembly binding redirect element if a suitable one is not already present.</summary>
      <param name="oldVersionRange">Th old version range</param>
      <param name="newVersion">The new version for redirection</param>
      <returns>The binding redirect element</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AddAssemblyCodeBase(System.String,System.String)">
      <summary>Adds an assembly code-base element if a suitable one is not already present.</summary>
      <param name="version">The assembly version</param>
      <param name="uri">The code base uri</param>
      <returns>The code base element</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.Copy">
      <summary>Creates a copy of the assembly dependency information.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.Equals(Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification">
      <summary>Describes an assembly name qualification configuration entry that maps an assembly partial name to its full name. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.FullName">
      <summary>Gets or sets the assembly full name to use.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.PartialName">
      <summary>Gets or sets the assembly partial name to qualify.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.Copy">
      <summary>Creates a copy of the assembly qualification information.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.Equals(Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostException">
      <summary>The type of exception thrown when hosting operations fail.</summary>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostServiceChannelInterop">
      <summary>Provides utilities to interact with a <see cref="T:Gallio.Runtime.Hosting.RemoteHostService" /> over a <see cref="T:Gallio.Runtime.Remoting.IClientChannel" /> or <see cref="T:Gallio.Runtime.Remoting.IServerChannel" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.HostServiceChannelInterop.ServiceName">
      <summary>Gets the name used to register the <see cref="T:Gallio.Runtime.Hosting.RemoteHostService" />. This field is constant and read-only.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostServiceChannelInterop.GetRemoteHostService(Gallio.Runtime.Remoting.IClientChannel)">
      <summary>Gets a remote host service using the specified channel.</summary>
      <param name="channel">The channel</param>
      <returns>The remote host service</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostServiceChannelInterop.RegisterWithChannel(Gallio.Runtime.Hosting.RemoteHostService,Gallio.Runtime.Remoting.IServerChannel)">
      <summary>Registers the host service with a channel.</summary>
      <param name="hostService">The remote host service</param>
      <param name="channel">The channel</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostService" /> or <paramref name="channel" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostSetup">
      <summary>Specifies a collection of parameters for setting up a <see cref="T:Gallio.Runtime.Hosting.IHost" />. This class cannot be inherited.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.ApplicationBaseDirectory">
      <summary>
        <para> Gets or sets the relative or absolute path of the application base directory, or null to use a default value selected by the consumer. </para>
        <para> If relative, the path is based on the current working directory, so a value of "" causes the current working directory to be used. </para>
      </summary>
      <value>The application base directory. Default is <c>null</c>.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.Configuration">
      <summary>Gets or sets the host configuration information.</summary>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value" /> is null</exception>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.ConfigurationFileLocation">
      <summary>Gets or sets where the host should write out the configuration file for the hosted components.</summary>
      <value>The configuration file location. Default is <see cref="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.Temp" />.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.Debug">
      <summary>Gets or sets whether to attach the debugger to the host.</summary>
      <value>True if a debugger should be attached to the host. Default is <c>false</c>.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.ProcessorArchitecture">
      <summary>Gets or sets the processor architecture that the host should target, when supported.</summary>
      <value>The processor architecture. Default is <see cref="F:System.Reflection.ProcessorArchitecture.MSIL" /></value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.Properties">
      <summary>Gets a mutable collection of key/value pairs that specify configuration properties for the host.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.ShadowCopy">
      <summary>Gets or sets whether assembly shadow copying is enabled.</summary>
      <value>True if shadow copying is enabled. Default is <c>false</c>.</value>
    </member>
    <member name="P:Gallio.Runtime.Hosting.HostSetup.WorkingDirectory">
      <summary>
        <para> Gets or sets the relative or absolute path of the working directory or null to use a default value selected by the consumer. </para>
        <para> If relative, the path is based on the current working directory, so a value of "" causes the current working directory to be used. </para>
      </summary>
      <value>The working directory. Default is <c>null</c>.</value>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostSetup.Canonicalize(System.String)">
      <summary>Makes all paths in this instance absolute.</summary>
      <param name="baseDirectory">The base directory for resolving relative paths, or null to use the current directory</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostSetup.Copy">
      <summary>Creates a copy of the host setup information.</summary>
      <returns>The copy</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostSetup.Equals(System.Object)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" nolink="true" />.</param>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostSetup.Equals(Gallio.Runtime.Hosting.HostSetup)">
      <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />.</summary>
      <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" nolink="true" />; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostSetup.GetHashCode">
      <summary>Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode" /> is suitable for use in hashing algorithms and data structures like a hash table.</summary>
      <returns>A hash code for the current <see cref="T:System.Object" />.</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostSetup.WriteTemporaryConfigurationFile">
      <summary>
        <para> Writes a temporary configuration file for the application to disk and returns its path based on <see cref="P:Gallio.Runtime.Hosting.HostSetup.ConfigurationFileLocation" />. The file is created with a unique name each time. </para>
        <para> The file should be deleted by the caller when no longer required. </para>
      </summary>
      <returns>The full path of the configuration file that was written, or null if no file was written</returns>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Runtime.Hosting.HostSetup.ApplicationBaseDirectory" /> is <c>null</c> but <see cref="P:Gallio.Runtime.Hosting.HostSetup.ConfigurationFileLocation" /> is <see cref="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.AppBase" />.</exception>
      <exception cref="T:System.IO.IOException">Thrown if the configuration file could not be written</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.HostUtils">
      <summary>Provides utilities for working with hosts. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostUtils.CreateInstance``1(Gallio.Runtime.Hosting.IHost)">
      <summary>Creates an instance of an object within a host.</summary>
      <typeparam name="T">The type of object to create</typeparam>
      <param name="host">The host in which to create the object</param>
      <returns>The object instance</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.HostUtils.CreateInstance(Gallio.Runtime.Hosting.IHost,System.Type)">
      <summary>Creates an instance of an object within</summary>
      <param name="host">The host in which to create the object</param>
      <param name="type">The type of object to create</param>
      <returns>The object instance</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host" /> or <paramref name="type" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IsolatedAppDomainHost">
      <summary>An isolated app domain host is a <see cref="T:Gallio.Runtime.Hosting.IHost" /> the runs code within an isolated <see cref="T:System.AppDomain" /> of this process. Communication with the <see cref="T:System.AppDomain" nolink="true" /> occurs over an inter-<see cref="T:System.AppDomain" nolink="true" /> .Net remoting channel.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHost.AcquireRemoteHostService">
      <summary>Connects to the remote host service.</summary>
      <returns>The remote host service</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHost.Dispose(System.Boolean)">
      <summary>Disposes the host.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory">
      <summary>A factory for initialized <see cref="T:Gallio.Runtime.Hosting.IsolatedAppDomainHost" /> hosts.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory.ComponentId">
      <summary>Gets the component Id of this factory. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>Creates the host.</summary>
      <param name="hostSetup">The canonicalized host setup, non-null</param>
      <param name="logger">The logger, non-null</param>
      <returns>The host</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IsolatedProcessHost">
      <summary>
        <para> An isolated process host is a <see cref="T:Gallio.Runtime.Hosting.IHost" /> that runs code within a new external process. Communication with the external process occurs over an inter-process communication channel. </para>
        <para> The host application is copied to a unique temporary folder and configured in place according to the <see cref="T:Gallio.Runtime.Hosting.HostSetup" />. Then it is launched and connected to with inter-process communication. The process is pinged periodically by the <see cref="T:Gallio.Runtime.Remoting.BinaryIpcClientChannel" />. Therefore it can be configured to self-terminate when it looks like the connection has been severed. </para>
      </summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.AcquireRemoteHostService">
      <summary>Connects to the remote host service.</summary>
      <returns>The remote host service</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.CreateProcessTask(System.String,System.String,System.String)">
      <summary>Creates the process task to start the process.</summary>
      <param name="executablePath">The executable path</param>
      <param name="arguments">The command-line arguments</param>
      <param name="workingDirectory">The working directory</param>
      <returns>The process task</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.Dispose(System.Boolean)">
      <summary>Disposes the host.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.PrepareConnection(System.String,System.String@,Gallio.Func{Gallio.Runtime.Remoting.IClientChannel}@,Gallio.Func{Gallio.Runtime.Remoting.IServerChannel}@)">
      <summary>Prepares the parameters for the remote connection.</summary>
      <param name="uniqueId">The unique id of the host</param>
      <param name="hostConnectionArguments">Set to the host application arguments used to configure its server channel</param>
      <param name="clientChannelFactory">Set to a factory used to create the local client channel</param>
      <param name="callbackChannelFactory">Set to a factory used to create the local server channel to allow the remote host to call back to this one</param>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IsolatedProcessHostFactory">
      <summary>A factory for initialized <see cref="T:Gallio.Runtime.Hosting.IsolatedProcessHost" /> hosts.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.ComponentId">
      <summary>Gets the component Id of this factory. This field is read-only.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.RuntimePath">
      <summary>Gets the path of the runtime components, in particular the folder where Gallio.Host.exe is located.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>Creates the host.</summary>
      <param name="hostSetup">The canonicalized host setup, non-null</param>
      <param name="logger">The logger, non-null</param>
      <returns>The host</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.LocalHost">
      <summary>An implementation of <see cref="T:Gallio.Runtime.Hosting.IHost" /> that runs code locally within the current AppDomain.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.LocalHost.IsLocal">
      <summary>Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.LocalHost.AcquireHostService">
      <summary>Gets the host service.</summary>
      <returns>The host service, or null if the host service was not available</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.LocalHost.Dispose(System.Boolean)">
      <summary>Disposes the host.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.LocalHost.ReleaseHostService(Gallio.Runtime.Hosting.IHostService)">
      <summary>Releases the host service.</summary>
      <param name="hostService">The host service that is being released, not null</param>
    </member>
    <member name="T:Gallio.Runtime.Hosting.LocalHostFactory">
      <summary>A factory for initialized <see cref="T:Gallio.Runtime.Hosting.LocalHost" /> hosts.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.LocalHostFactory.ComponentId">
      <summary>Gets the component Id of this factory. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.LocalHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>Creates the host.</summary>
      <param name="hostSetup">The canonicalized host setup, non-null</param>
      <param name="logger">The logger, non-null</param>
      <returns>The host</returns>
    </member>
    <member name="T:Gallio.Runtime.Hosting.RemoteHost" />
    <member name="P:Gallio.Runtime.Hosting.RemoteHost.IsLocal">
      <summary>Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHost.AcquireHostService">
      <summary>Gets the host service.</summary>
      <returns>The host service, or null if the host service was not available</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHost.AcquireRemoteHostService">
      <summary>Connects to the remote host service.</summary>
      <returns>The remote host service</returns>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHost.Dispose(System.Boolean)">
      <summary>Disposes the host.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHost.ReleaseHostService(Gallio.Runtime.Hosting.IHostService)">
      <summary>Releases the host service.</summary>
      <param name="hostService">The host service that is being released, not null</param>
    </member>
    <member name="T:Gallio.Runtime.Hosting.RemoteHostService">
      <summary>A remotely accessible host service.</summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.RemoteHostService.WatchdogTimerExpired">
      <summary>Returns true if the watchdog timer expired.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHostService.Dispose(System.Boolean)">
      <summary>Disposes the host service.</summary>
      <param name="disposing">True if disposing</param>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHostService.PingImpl">
      <summary>Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.Ping" />.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHostService.Shutdown">
      <summary>Remotely shuts down the host service.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.RemoteHostService.WaitUntilShutdown">
      <summary>Waits until the host service is shutdown or a ping timeout occurs.</summary>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IHost">
      <summary>
        <para> A host represents an environment that may be used to perform various services in isolation. </para>
        <para> For example, a host might provide the ability to run code in an isolated <see cref="T:System.AppDomain" /> of the current process, or it might run code in an isolated process, or connect to an existing remote process. </para>
      </summary>
    </member>
    <member name="P:Gallio.Runtime.Hosting.IHost.IsConnected">
      <summary>Returns true if the host is connected.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed</exception>
    </member>
    <member name="P:Gallio.Runtime.Hosting.IHost.IsLocal">
      <summary>Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHost.Disconnect">
      <summary>Disconnects the host.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHost.GetHostService">
      <summary>Gets a host service that can be used to perform operations within the host's environment.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the host has been disconnected</exception>
      <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHost.GetHostSetup">
      <summary>Gets a deep copy of the host setup information.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed</exception>
    </member>
    <member name="E:Gallio.Runtime.Hosting.IHost.Disconnected">
      <summary>An event that is raised when the host is disconnected. If the host has already been disconnected, the event is fired immediately.</summary>
      <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IHostFactory">
      <summary>A host factory encapsulates a policy for creating new <see cref="T:Gallio.Runtime.Hosting.IHost" /> instances.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHostFactory.CreateHost(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
      <summary>Creates a host instance.</summary>
      <param name="hostSetup">The host setup</param>
      <param name="logger">The logger for host message output</param>
      <returns>The newly created host</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup" /> or <paramref name="logger" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IHostService">
      <summary>
        <para> A host service enables a local client to interact with a remotely executing hosting environment. </para>
        <para> A host service implementation may choose to implement a keep-alive mechanism to automatically shut itself down when the service is disposed or when it has not received a ping within a set period of time. </para>
      </summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHostService.CreateInstance(System.String,System.String)">
      <summary>Creates an instance of a remote object given an assembly name and type name.</summary>
      <param name="assemblyName">The name of assembly that contains the type</param>
      <param name="typeName">The full name of the type</param>
      <returns>The object handle of the instance</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName" /> or <paramref name="typeName" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHostService.CreateInstanceFrom(System.String,System.String)">
      <summary>Creates an instance of a remote object given an assembly path and type name.</summary>
      <param name="assemblyPath">The path of assembly that contains the type</param>
      <param name="typeName">The full name of the type</param>
      <returns>The object handle of the instance</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyPath" /> or <paramref name="typeName" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHostService.Do``2(Gallio.Func{``0,``1},``0)">
      <summary>
        <para> Asks the host to perform the specified action remotely. </para>
        <para> The action must be a serializable delegate so that it can be sent to the host and executed. Generally speaking, this means it must either be a delegate for a static method or its target object must be serializable. The argument and result values must also be serializable (or null). </para>
      </summary>
      <typeparam name="TArg">The argument type</typeparam>
      <typeparam name="TResult">The result type</typeparam>
      <param name="func">The action to perform</param>
      <param name="arg">The argument value, if any</param>
      <returns>The result value, if any</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="func" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IHostService.Ping">
      <summary>Pings the host to verify and maintain connectivity.</summary>
      <exception cref="T:Gallio.Runtime.Hosting.HostException">Thrown if the remote host is unreachable</exception>
    </member>
    <member name="T:Gallio.Runtime.Hosting.IRemoteHostService">
      <summary>A specialization of host service designed for hosts that are remotely managed.</summary>
    </member>
    <member name="M:Gallio.Runtime.Hosting.IRemoteHostService.Shutdown">
      <summary>Remotely shuts down the host service.</summary>
    </member>
    <member name="T:Gallio.Runtime.Hosting.ConfigurationFileLocation">
      <summary>Specifies where a <see cref="T:Gallio.Runtime.Hosting.IHost" /> should store the temporary configuration file it generates when it is being initialized.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.None">
      <summary>Do not create a configuration file.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.Temp">
      <summary>Stores the configuration file in the user's temporary directory.</summary>
    </member>
    <member name="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.AppBase">
      <summary>Stores the configuration file in the application base directory of the hosted components.</summary>
    </member>
    <member name="T:Gallio.Runtime.Loader.AssemblyResolverBootstrap">
      <summary>Bootstraps a globally reachable assembly resolver manager within the Gallio installation path. May be used by clients to ensure that Gallio assemblies can be resolved assuming we were able to load the main assembly and access the bootstrap. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.Loader.AssemblyResolverBootstrap.AssemblyResolverManager">
      <summary>Gets the bootstrapped assembly resolver manager.</summary>
      <exception cref="T:System.InvalidOperationException">Thrown if the bootstrap resolver has not been initialized</exception>
    </member>
    <member name="M:Gallio.Runtime.Loader.AssemblyResolverBootstrap.Install(System.String)">
      <summary>Installs a global assembly resolver given the specified runtime path.</summary>
      <param name="runtimePath">The Gallio runtime path</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="runtimePath" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Loader.DefaultAssemblyResolverManager">
      <summary>Resolves assemblies using hint paths and custom resolvers.</summary>
    </member>
    <member name="M:Gallio.Runtime.Loader.DefaultAssemblyResolverManager.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
      <summary>Adds a custom assembly resolver to use when standard assembly resolution fails.</summary>
      <param name="assemblyResolver">The assembly resolver</param>
    </member>
    <member name="M:Gallio.Runtime.Loader.DefaultAssemblyResolverManager.AddHintDirectory(System.String)">
      <summary>Adds an assembly load hint directory to search when standard assembly resolution fails.</summary>
      <param name="hintDirectory">The hint directory</param>
    </member>
    <member name="M:Gallio.Runtime.Loader.DefaultAssemblyResolverManager.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="T:Gallio.Runtime.Loader.DefaultLoader">
      <summary>Default implementation of a loader.</summary>
    </member>
    <member name="P:Gallio.Runtime.Loader.DefaultLoader.AssemblyResolverManager">
      <summary>Gets the assembly resolver manager used to resolve referenced assemblies.</summary>
    </member>
    <member name="M:Gallio.Runtime.Loader.DefaultLoader.LoadAssemblyFrom(System.String)">
      <summary>Loads an assembly from the specified file.</summary>
      <param name="assemblyFile">The assembly file</param>
      <returns>The loaded assembly</returns>
    </member>
    <member name="T:Gallio.Runtime.Loader.IAssemblyResolver">
      <summary>A custom assembly resolver participates in assembly resolution when standard assembly resolution fails to load the desired assembly but before assembly load paths are considered.</summary>
    </member>
    <member name="M:Gallio.Runtime.Loader.IAssemblyResolver.Resolve(System.String,System.Boolean)">
      <summary>Resolves the assembly with the specified name.</summary>
      <param name="assemblyName">The full name of the assembly as was provided to <see cref="M:System.Reflection.Assembly.Load(System.String)" /></param>
      <param name="reflectionOnly">True if the assembly is to be resolved in the reflection-only context</param>
      <returns>The assembly, or null if it could not be resolved</returns>
    </member>
    <member name="T:Gallio.Runtime.Loader.IAssemblyResolverManager">
      <summary>Provides support for resolving assemblies using hint paths and custom resolvers.</summary>
    </member>
    <member name="M:Gallio.Runtime.Loader.IAssemblyResolverManager.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
      <summary>Adds a custom assembly resolver to use when standard assembly resolution fails.</summary>
      <param name="assemblyResolver">The assembly resolver</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyResolver" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Loader.IAssemblyResolverManager.AddHintDirectory(System.String)">
      <summary>Adds an assembly load hint directory to search when standard assembly resolution fails.</summary>
      <param name="hintDirectory">The hint directory</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hintDirectory" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Loader.ILoader">
      <summary>Provides services to assist with loading tests and dependent resources.</summary>
    </member>
    <member name="P:Gallio.Runtime.Loader.ILoader.AssemblyResolverManager">
      <summary>Gets the assembly resolver manager used to resolve referenced assemblies.</summary>
    </member>
    <member name="M:Gallio.Runtime.Loader.ILoader.LoadAssemblyFrom(System.String)">
      <summary>Loads an assembly from the specified file.</summary>
      <param name="assemblyFile">The assembly file</param>
      <returns>The loaded assembly</returns>
      <exception cref="T:System.Exception">Thrown if the assembly could not be loaded</exception>
    </member>
    <member name="T:Gallio.Runtime.Logging.BaseLogger">
      <summary>Base implementation of <see cref="T:Gallio.Runtime.Logging.ILogger" /> that performs argument validation and supports convenience methods. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.BaseLogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String)">
      <summary>Logs a message.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message</param>
    </member>
    <member name="M:Gallio.Runtime.Logging.BaseLogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,System.Exception)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message</param>
      <param name="exception">The associated exception, or null if none</param>
    </member>
    <member name="M:Gallio.Runtime.Logging.BaseLogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="M:Gallio.Runtime.Logging.BaseLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="T:Gallio.Runtime.Logging.EventLogger">
      <summary>A logger that dispatches log messages via events.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.EventLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="E:Gallio.Runtime.Logging.EventLogger.LogMessage">
      <summary>An event that is fired when a log message is received.</summary>
    </member>
    <member name="T:Gallio.Runtime.Logging.FilteredLogger">
      <summary>Filters another logger to exclude messages below a given level of severity.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.FilteredLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="T:Gallio.Runtime.Logging.LogMessageEventArgs">
      <summary>Event arguments for the <see cref="T:Gallio.Runtime.Logging.EventLogger" /></summary>
    </member>
    <member name="P:Gallio.Runtime.Logging.LogMessageEventArgs.ExceptionData">
      <summary>Gets the exception, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runtime.Logging.LogMessageEventArgs.Message">
      <summary>Gets the log message.</summary>
    </member>
    <member name="P:Gallio.Runtime.Logging.LogMessageEventArgs.Severity">
      <summary>Gets the log severity.</summary>
    </member>
    <member name="T:Gallio.Runtime.Logging.NullLogger">
      <summary>A null implementation of <see cref="T:Gallio.Runtime.Logging.ILogger" /> that does nothing. This class cannot be inherited.</summary>
    </member>
    <member name="F:Gallio.Runtime.Logging.NullLogger.Instance">
      <summary>Gets a singleton instance of the null logger. This field is read-only.</summary>
    </member>
    <member name="T:Gallio.Runtime.Logging.RemoteLogger">
      <summary>Wraps a logger so that it can be accessed remotely.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.RemoteLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="T:Gallio.Runtime.Logging.SeverityPrefixLogger">
      <summary>The severity prefix logger wraps another loggers and encodes the severity of a log entry into the log message itself in a standard form.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.SeverityPrefixLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="T:Gallio.Runtime.Logging.SeverityPrefixParser">
      <summary>Parses severity information from log messages encoded by <see cref="T:Gallio.Runtime.Logging.SeverityPrefixLogger" />.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.SeverityPrefixParser.ParseLine(System.String,Gallio.Runtime.Logging.LogSeverity@,System.String@)">
      <summary>Parses a line of log data.</summary>
      <param name="line">The line of log data to parse</param>
      <param name="severity">Set to the severity of the message extracted from the line</param>
      <param name="message">The message extracted from the line</param>
      <returns>True if the message included a severity, false otherwise</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="line" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Logging.TextLogger">
      <summary>A logger that writes output to a <see cref="T:System.IO.TextWriter" />.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.TextLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message, not null</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
    </member>
    <member name="T:Gallio.Runtime.Logging.ILogger">
      <summary>Provides support for logging messages from system components.</summary>
    </member>
    <member name="M:Gallio.Runtime.Logging.ILogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String)">
      <summary>Logs a message.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Logging.ILogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,System.Exception)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message</param>
      <param name="exception">The associated exception, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message" /> is null</exception>
    </member>
    <member name="M:Gallio.Runtime.Logging.ILogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Model.Diagnostics.ExceptionData)">
      <summary>Logs a message with an associated exception.</summary>
      <param name="severity">The log message severity</param>
      <param name="message">The log message</param>
      <param name="exceptionData">The associated exception data, or null if none</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Logging.LogSeverity">
      <summary>Describes the severity of a log message.</summary>
    </member>
    <member name="F:Gallio.Runtime.Logging.LogSeverity.Debug">
      <summary>The severity used for debug messages.</summary>
    </member>
    <member name="F:Gallio.Runtime.Logging.LogSeverity.Info">
      <summary>The severity used for informational messages.</summary>
    </member>
    <member name="F:Gallio.Runtime.Logging.LogSeverity.Important">
      <summary>The severity used for important messages.</summary>
    </member>
    <member name="F:Gallio.Runtime.Logging.LogSeverity.Warning">
      <summary>The severity used for warning messages.</summary>
    </member>
    <member name="F:Gallio.Runtime.Logging.LogSeverity.Error">
      <summary>The severity used for error messages.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter">
      <summary>Abstract base class for objects whose purpose is to present progress information to the user. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter.ProgressMonitor">
      <summary>Gets the attached progress monitor.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter.Initialize">
      <summary>Initializes the presenter after a progress monitor has been attached.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter.Present(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Presents an observable progress monitor.</summary>
      <param name="progressMonitor">The progress monitor to present</param>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider">
      <summary>An abstract base class to assist with the implementation of conformant <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider" /> classes. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider.GetPresenter">
      <summary>Gets a presenter for the progress monitor.</summary>
      <returns>The presenter</returns>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider.Run(Gallio.Runtime.ProgressMonitoring.TaskWithProgress)">
      <summary>Runs a task with a progress monitor. Throws <see cref="T:System.OperationCanceledException" /> if the task is canceled.</summary>
      <param name="task">The task to run, never null</param>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor">
      <summary>An abstract base class for progress monitors that implements the cancelation semantics only. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.IsCanceled">
      <summary>Returns true if the operation has been canceled. Clients should poll this value periodically or listen for the <see cref="E:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Canceled" /> event to ensure the operation is canceled in a timely fashion.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.BeginTask(System.String,System.Double)">
      <summary>Notifies that the main task is starting. Must be called at most once on the progress monitor.</summary>
      <param name="taskName">The name of the task being monitored</param>
      <param name="totalWorkUnits">The total number of work units to perform. Must be greater than 0, or <see cref="F:System.Double.NaN" /> if an indeterminate amount of work is to be performed.</param>
      <returns>An object that calls <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> when disposed</returns>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Cancel">
      <summary>Notifies that the operation is to be canceled. The method always causes the <see cref="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled" /> flag to be set, even if the operation is already done.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.CreateSubProgressMonitor(System.Double)">
      <summary>
        <para> Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. </para>
        <para> Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. </para>
        <para> As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. </para>
      </summary>
      <param name="parentWorkUnits">The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0.</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Dispose">
      <summary>Disposes the progress monitor, including cleaning up an marking as <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Done" /> the current task, if any.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Dispose(System.Boolean)">
      <summary>Disposes the progress monitor, including cleaning up an marking as <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Done" /> the current task, if any.</summary>
      <param name="disposing">True if <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Dispose" /> was called</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Done">
      <summary>Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.NotifyCanceled">
      <summary>Notifies that the task has actually been canceled. If this is the first time <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.NotifyCanceled" /> has been called, sets <see cref="P:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.IsCanceled" /> to true and fires the <see cref="E:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Canceled" /> event. Otherwise does nothing.</summary>
      <returns>True if cancelation has just occurred, false if no state change was performed</returns>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.OnCancel">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Cancel" /> performs its updates.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.SetStatus(System.String)">
      <summary>Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files.</summary>
      <param name="status">The name of the current subtask</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.ThrowIfCanceled">
      <summary>Throws an <see cref="T:System.OperationCanceledException" /> if the operation has been canceled.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Worked(System.Double)">
      <summary>Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded.</summary>
      <param name="workUnits">The number of work units completed so far. Must be a finite value greater than or equal to 0.</param>
    </member>
    <member name="E:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Canceled">
      <summary>Adds or removes an event handler to be called when the operation is canceled. If the operation has already been canceled, then the event handler will be called immediately.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorPresenter">
      <summary>Displays progress by writing a series of messages to an <see cref="T:Gallio.Runtime.Logging.ILogger" /> as the name of the current task changes.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorPresenter.Initialize">
      <summary>Initializes the presenter after a progress monitor has been attached.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorProvider">
      <summary>Displays progress by writing a series of messages to an <see cref="T:Gallio.Runtime.Logging.ILogger" /> as the name of the current task changes.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorProvider.GetPresenter">
      <summary>Gets a presenter for the progress monitor.</summary>
      <returns>The presenter</returns>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.NullProgressMonitor">
      <summary>Creates instances of null progress monitors that do nothing. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.NullProgressMonitor.CreateInstance">
      <summary>Creates a null progress monitor.</summary>
      <returns>The null progress monitor</returns>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorPresenter">
      <summary>A null progress monitor presenter simply does nothing. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorPresenter.Instance">
      <summary>Gets the singleton instance of the presenter. This field is read-only.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorPresenter.Present(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Presents an observable progress monitor.</summary>
      <param name="progressMonitor">The progress monitor to present</param>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider">
      <summary>Runs tasks without reporting any progress. Argument validation and state changes are still noted but they do not have any outward effect. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider.Instance">
      <summary>Gets the singleton instance of the provider.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor">
      <summary>An observable progress monitor tracks validates arguments and tracks the state of the progress monitor but it does not implement any of its own behavior in response to the notifications received. Instead, it is intended to be observed by a presenter that translates state change events into changes of the view.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Child">
      <summary>Gets the active child sub-progress monitor, or null if none.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.CompletedWorkUnits">
      <summary>Gets the number of work units completed so far. It is the sum of all values passed to the <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)" /> method while the task has been running. This value is never NaN because at each step a finite amount of work must be recorded.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.IsDone">
      <summary>Returns true if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done" /> has been called.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.IsRunning">
      <summary>Returns true if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)" /> has been called and <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done" /> has not yet also been called.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Leaf">
      <summary>Gets the currently active leaf sub-progress monitor, or this one if there are no sub-progress monitors.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.LeafSubTaskName">
      <summary>Gets the name of the most deeply nested sub-task, or an empty string if there are no sub-progress monitors.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.RemainingWorkUnits">
      <summary>Gets the number of remaining work units to perform, or NaN to indicate that an indeterminate amount of work remains to be performed because <see cref="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TotalWorkUnits" /> is NaN and the operation is not done.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Status">
      <summary>Gets the current status message set by <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.SetStatus(System.String)" /> or an empty string by default.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TaskName">
      <summary>Gets the name of the task or an empty string if <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)" /> has not been called.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TotalWorkUnits">
      <summary>Gets the total number of work units to perform, or NaN to indicate that an indeterminate amount of work is to be performed.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Begins a sub-task in a sub-progress monitor.</summary>
      <param name="subProgressMonitor">The sub-progress monitor</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)">
      <summary>Notifies that the main task is starting. Must be called at most once on the progress monitor.</summary>
      <param name="taskName">The name of the task being monitored</param>
      <param name="totalWorkUnits">The total number of work units to perform. Must be greater than 0, or <see cref="F:System.Double.NaN" /> if an indeterminate amount of work is to be performed.</param>
      <returns>An object that calls <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> when disposed</returns>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.CreateSubProgressMonitor(System.Double)">
      <summary>
        <para> Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. </para>
        <para> Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. </para>
        <para> As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. </para>
      </summary>
      <param name="parentWorkUnits">The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0.</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done">
      <summary>Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.EndSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Ends a sub-task in a sub-progress monitor.</summary>
      <param name="subProgressMonitor">The sub-progress monitor</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.NotifyRecursiveSubTaskChanged(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Called when a subtask changes in any way, including one of its own subtasks changing.</summary>
      <param name="subProgressMonitor">The sub-progress monitor</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnBeginSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Called when the active sub-task <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)" /> performs its updates.</summary>
      <param name="subProgressMonitor">The sub-task's progress monitor</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnBeginTask(System.String,System.Double)">
      <summary>Called after <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)" /> performs its updates.</summary>
      <param name="taskName">The task name</param>
      <param name="totalWorkUnits">The total number of work units</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnCancel">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Cancel" /> performs its updates.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnChange">
      <summary>Called when a state change occurs.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnDone">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done" /> performs its updates.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnEndSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.EndSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)" /> performs its updates.</summary>
      <param name="subProgressMonitor">The sub-task's progress monitor</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnRecursiveSubTaskChange(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.NotifyRecursiveSubTaskChanged(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)" /> performs its updates.</summary>
      <param name="subProgressMonitor">The sub-task's progress monitor</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnSetStatus(System.String)">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SetStatus(System.String)" /> performs its updates.</summary>
      <param name="status">The status message</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnSubProgressMonitorCreated(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Called when a new progress monitor is created.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnWorked(System.Double)">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)" /> performs its updates.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SetStatus(System.String)">
      <summary>Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files.</summary>
      <param name="status">The name of the current subtask</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)">
      <summary>Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded.</summary>
      <param name="workUnits">The number of work units completed so far. Must be a finite value greater than or equal to 0.</param>
    </member>
    <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Changed">
      <summary>Adds or removes an event handler that is called whenever the state of the progress monitor changes in any way.</summary>
    </member>
    <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitorCreated">
      <summary>Adds or removes an event handler that is called whenever a new sub-progress monitor is created so that the observer can attach its event handlers.</summary>
    </member>
    <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TaskFinished">
      <summary>Adds or removes an event handler that is called when the task is finished.</summary>
    </member>
    <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TaskStarting">
      <summary>Adds or removes an event handler that is called when the task is starting.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor">
      <summary>A standard sub-progress monitor implementation that notifies its parent as work is performed.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnBeginTask(System.String,System.Double)">
      <summary>Called after <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)" /> performs its updates.</summary>
      <param name="taskName">The task name</param>
      <param name="totalWorkUnits">The total number of work units</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnCancel">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Cancel" /> performs its updates.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnChange">
      <summary>Called when a state change occurs.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnDone">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done" /> performs its updates.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnWorked(System.Double)">
      <summary>Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)" /> performs its updates.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor">
      <summary>A remote progress monitor is a serializable wrapper for another progress monitor. The wrapper can be passed to another AppDomain and communication occurs over .Net remoting. This class cannot be inherited.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.BeginTask(System.String,System.Double)">
      <summary>Notifies that the main task is starting. Must be called at most once on the progress monitor.</summary>
      <param name="taskName">The name of the task being monitored</param>
      <param name="totalWorkUnits">The total number of work units to perform. Must be greater than 0, or <see cref="F:System.Double.NaN" /> if an indeterminate amount of work is to be performed.</param>
      <returns>An object that calls <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> when disposed</returns>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.CreateSubProgressMonitor(System.Double)">
      <summary>
        <para> Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. </para>
        <para> Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. </para>
        <para> As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. </para>
      </summary>
      <param name="parentWorkUnits">The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0.</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Done">
      <summary>Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.SetStatus(System.String)">
      <summary>Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files.</summary>
      <param name="status">The name of the current subtask</param>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Worked(System.Double)">
      <summary>Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded.</summary>
      <param name="workUnits">The number of work units completed so far. Must be a finite value greater than or equal to 0.</param>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorPresenter">
      <summary>A console progress monitor presenter displays a simple tally of the amount of work to be done on the main task as a bar chart. The progress monitor responds to cancelation events at the console.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorPresenter.Initialize">
      <summary>Initializes the presenter after a progress monitor has been attached.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorProvider">
      <summary>A console progress monitor displays a simple tally of the amount of work to be done on the main task as a bar chart. The progress monitor responds to cancelation events at the console.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorProvider.GetPresenter">
      <summary>Gets a presenter for the progress monitor.</summary>
      <returns>The presenter</returns>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.SubProgressMonitorCreatedEventArgs">
      <summary>Provides a reference to the newly created sub-progress monitor.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.SubProgressMonitorCreatedEventArgs.SubProgressMonitor">
      <summary>Gets the newly created sub-progress monitor.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.ProgressMonitorTaskCookie">
      <summary>A progress monitor task cookie represents a task in progress. When it is disposed, the corresponding <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor" />'s <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> method is called.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.ProgressMonitorTaskCookie.Dispose">
      <summary>
        <para> Marks the task as finished. </para>
        <para> Equivalent to calling <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> on the associated <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor" />. This method is provded as a convenience for use with the C# using statement. </para>
      </summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor">
      <summary>A progress monitor provides facilities for core functionality to report progress of a long running operation. The interface is typically implemented by a UI component such as a progress dialog.</summary>
    </member>
    <member name="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled">
      <summary>Returns true if the operation has been canceled. Clients should poll this value periodically or listen for the <see cref="E:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Canceled" /> event to ensure the operation is canceled in a timely fashion.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)">
      <summary>Notifies that the main task is starting. Must be called at most once on the progress monitor.</summary>
      <param name="taskName">The name of the task being monitored</param>
      <param name="totalWorkUnits">The total number of work units to perform. Must be greater than 0, or <see cref="F:System.Double.NaN" /> if an indeterminate amount of work is to be performed.</param>
      <returns>An object that calls <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> when disposed</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="taskName" /> is null</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="totalWorkUnits" /> is not valid</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)" /> or <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done" /> have already been called</exception>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Cancel">
      <summary>Notifies that the operation is to be canceled. The method always causes the <see cref="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled" /> flag to be set, even if the operation is already done.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.CreateSubProgressMonitor(System.Double)">
      <summary>
        <para> Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. </para>
        <para> Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. </para>
        <para> As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. </para>
      </summary>
      <param name="parentWorkUnits">The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0.</param>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="parentWorkUnits" /> is not valid</exception>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done">
      <summary>Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.SetStatus(System.String)">
      <summary>Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files.</summary>
      <param name="status">The name of the current subtask</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="status" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the task is not running</exception>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.ThrowIfCanceled">
      <summary>Throws an <see cref="T:System.OperationCanceledException" /> if the operation has been canceled.</summary>
      <exception cref="T:System.OperationCanceledException">Thrown if <see cref="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled" /> is true</exception>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Worked(System.Double)">
      <summary>Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded.</summary>
      <param name="workUnits">The number of work units completed so far. Must be a finite value greater than or equal to 0.</param>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="workUnits" /> is not valid</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the task is not running</exception>
    </member>
    <member name="E:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Canceled">
      <summary>Adds or removes an event handler to be called when the operation is canceled. If the operation has already been canceled, then the event handler will be called immediately.</summary>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitorPresenter">
      <summary>A progress monitor presenter attaches a progress monitor to a view.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitorPresenter.Present(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
      <summary>Presents an observable progress monitor.</summary>
      <param name="progressMonitor">The progress monitor to present</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor" /> is null</exception>
      <exception cref="T:System.InvalidOperationException">Thrown if the presenter does not support being reused to present multiple progress monitors</exception>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider">
      <summary>A progress monitor provider runs a task with progress monitoring and provides clear notification of cancelation in the form of an <see cref="T:System.OperationCanceledException" />.</summary>
    </member>
    <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider.Run(Gallio.Runtime.ProgressMonitoring.TaskWithProgress)">
      <summary>Runs a task with a progress monitor. Throws <see cref="T:System.OperationCanceledException" /> if the task is canceled.</summary>
      <param name="task">The task to run, never null</param>
      <exception cref="T:System.OperationCanceledException">Thrown if the task is canceled</exception>
    </member>
    <member name="T:Gallio.Runtime.ProgressMonitoring.TaskWithProgress">
      <summary>Represents a task to be executed with a progress monitor.</summary>
      <param name="progressMonitor">The progress monitor, never null</param>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BaseChannel">
      <summary>Abstract base class for channels implemented using the .Net remoting infrastructure. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="P:Gallio.Runtime.Remoting.BaseChannel.Channel">
      <summary>Gets the associated .Net remoting channel.</summary>
    </member>
    <member name="P:Gallio.Runtime.Remoting.BaseChannel.ChannelUri">
      <summary>Gets the root Uri associated with the channel.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.BaseChannel.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.BaseChannel.GetServiceUri(System.String)">
      <summary>Gets the Uri of a service with the given name that can be accessed using this channel.</summary>
      <param name="serviceName">The service name</param>
      <returns>The service uri</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceName" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BaseClientChannel">
      <summary>Abstract base class for client channels implemented using the .Net remoting infrastructure. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.BaseClientChannel.GetService(System.Type,System.String)">
      <summary>Gets a well-known remote service with the specified name.</summary>
      <param name="serviceType">The type of the service</param>
      <param name="serviceName">The name of the service</param>
      <returns>The component or a proxy that provides the service</returns>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BaseServerChannel">
      <summary>Abstract base class for client channels implemented using the .Net remoting infrastructure. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.BaseServerChannel.RegisterService(System.String,System.MarshalByRefObject)">
      <summary>Registers a well-known service with the specified name.</summary>
      <param name="serviceName">The name of the service</param>
      <param name="component">The component that provides the service</param>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BinaryIpcClientChannel">
      <summary>A client channel based on an <see cref="T:System.Runtime.Remoting.Channels.Ipc.IpcClientChannel" /> that uses a <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" />.</summary>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BinaryIpcServerChannel">
      <summary>A server channel based on an <see cref="T:System.Runtime.Remoting.Channels.Ipc.IpcServerChannel" /> that uses a <see cref="T:System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider" />.</summary>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BinaryTcpClientChannel">
      <summary>A client channel based on an <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpClientChannel" /> that uses a <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" />.</summary>
    </member>
    <member name="T:Gallio.Runtime.Remoting.BinaryTcpServerChannel">
      <summary>A server channel based on an <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpServerChannel" /> that uses a <see cref="T:System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider" />.</summary>
    </member>
    <member name="T:Gallio.Runtime.Remoting.LongLivedMarshalByRefObject">
      <summary>Base class for long-lived marshal by ref objects. This class is <see langword="abstract" /> and so cannot be instantiated.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.LongLivedMarshalByRefObject.InitializeLifetimeService">
      <summary>Obtains a lifetime service object to control the lifetime policy for this instance.</summary>
      <returns>An object of type <see cref="T:System.Runtime.Remoting.Lifetime.ILease" /> used to control the lifetime policy for this instance. This is the current lifetime service object for this instance if one exists; otherwise, a new lifetime service object initialized to the value of the <see cref="P:System.Runtime.Remoting.Lifetime.LifetimeServices.LeaseManagerPollTime" /> property.</returns>
    </member>
    <member name="T:Gallio.Runtime.Remoting.IClientChannel">
      <summary>A client channel manages the client side of a remoting channel.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.IClientChannel.GetService(System.Type,System.String)">
      <summary>Gets a well-known remote service with the specified name.</summary>
      <param name="serviceType">The type of the service</param>
      <param name="serviceName">The name of the service</param>
      <returns>The component or a proxy that provides the service</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType" /> or <paramref name="serviceName" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Remoting.IServerChannel">
      <summary>A server channel manages the server side of a remoting channel.</summary>
    </member>
    <member name="M:Gallio.Runtime.Remoting.IServerChannel.RegisterService(System.String,System.MarshalByRefObject)">
      <summary>Registers a well-known service with the specified name.</summary>
      <param name="serviceName">The name of the service</param>
      <param name="component">The component that provides the service</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceName" /> or <paramref name="component" /> is null</exception>
    </member>
    <member name="T:Gallio.Runtime.Windsor.WindsorRuntime">
      <summary>Default implementation of <see cref="T:Gallio.Runtime.IRuntime" /> based on the Castle inversion of control microkernel.</summary>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.GetPluginAssemblyPaths">
      <summary>Gets the paths and assembly names of all plugin assemblies.</summary>
      <returns>The paths</returns>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.GetRuntimeSetup">
      <summary>Gets a deep copy of the runtime setup used to configure this runtime.</summary>
      <returns>The runtime setup</returns>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.Initialize(Gallio.Runtime.Logging.ILogger)">
      <summary>Initializes the runtime.</summary>
      <param name="logger">The runtime logging service</param>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.MapUriToLocalPath(System.Uri)">
      <summary>Maps a Uri to a local path.</summary>
      <param name="uri">The uri to map</param>
      <returns>The local path</returns>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.Resolve(System.String)">
      <summary>Resolves a reference to a component with the given id.</summary>
      <param name="componentId">The componentId</param>
      <returns>A component with the specified id</returns>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.Resolve(System.Type)">
      <summary>Resolves a reference to a component that implements the specified service.</summary>
      <param name="service">The service type</param>
      <returns>A component that implements the service</returns>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.Resolve``1">
      <summary>Resolves a reference to a component that implements the specified service.</summary>
      <returns>A component that implements the service</returns>
    </member>
    <member name="M:Gallio.Runtime.Windsor.WindsorRuntime.ResolveAll``1">
      <summary>Resolves references to all components that implement the specified service.</summary>
      <returns>An array of components that implement the service</returns>
    </member>
    <member name="T:Gallio.Utilities.CurrentDirectorySwitcher">
      <summary>Sets <see cref="P:System.Environment.CurrentDirectory" /> when created, then restores it when disposed.</summary>
    </member>
    <member name="M:Gallio.Utilities.CurrentDirectorySwitcher.Dispose">
      <summary>Resets the current directory to its original saved value.</summary>
      <exception cref="T:System.IO.IOException">Thrown if the current directory could not be reset</exception>
    </member>
    <member name="T:Gallio.Utilities.DefaultXmlSerializer">
      <summary>Default IXmlSerializer implementation.</summary>
    </member>
    <member name="M:Gallio.Utilities.DefaultXmlSerializer.LoadFromXml``1(System.String)">
      <summary>Loads an object graph from an Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <typeparam name="T">The root object type</typeparam>
      <param name="filename">The filename</param>
      <returns>The root object</returns>
    </member>
    <member name="M:Gallio.Utilities.DefaultXmlSerializer.SaveToXml``1(``0,System.String)">
      <summary>Saves an object graph to a pretty-printed Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <typeparam name="T">The root object type</typeparam>
      <param name="root">The root object</param>
      <param name="filename">The filename</param>
    </member>
    <member name="T:Gallio.Utilities.EventHandlerUtils">
      <summary>Provides a few functions for working with <see cref="T:System.EventHandler" /> and <see cref="T:System.EventHandler`1" />. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Utilities.EventHandlerUtils.SafeInvoke(System.EventHandler,System.Object,System.EventArgs)">
      <summary>Safely invokes each delegate in the invocation list of an event handler. Sends any exceptions thrown by the handler to <see cref="M:Gallio.Runtime.UnhandledExceptionPolicy.Report(System.String,System.Exception)" />.</summary>
      <param name="handlerChain">The event handler chain</param>
      <param name="sender">The sender</param>
      <param name="e">The event arguments</param>
    </member>
    <member name="M:Gallio.Utilities.EventHandlerUtils.SafeInvoke``1(System.EventHandler{``0},System.Object,``0)">
      <summary>Safely invokes each delegate in the invocation list of an event handler. Sends any exceptions thrown by the handler to <see cref="M:Gallio.Runtime.UnhandledExceptionPolicy.Report(System.String,System.Exception)" />.</summary>
      <param name="handlerChain">The event handler chain</param>
      <param name="sender">The sender</param>
      <param name="e">The event arguments</param>
    </member>
    <member name="T:Gallio.Utilities.ExceptionUtils">
      <summary>Provides helper functions for manipulating <see cref="T:System.Exception" />s. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Utilities.ExceptionUtils.InvokeMethodWithoutTargetInvocationException(System.Reflection.MethodBase,System.Object,System.Object[])">
      <summary>Invokes a method without producing a <see cref="T:System.Reflection.TargetInvocationException" /></summary>
      <param name="method">The method to invoke</param>
      <param name="obj">The instance on which to invoke the method, or null if none</param>
      <param name="args">The method arguments, or null if none</param>
      <returns>The method return value, or null if none</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.ExceptionUtils.RethrowWithNoStackTraceLoss(System.Exception)">
      <summary>Rethrows an exception without discarding its stack trace. This enables the inner exception of <see cref="T:System.Reflection.TargetInvocationException" /> to be unwrapped.</summary>
      <param name="ex">The exception to rethrow</param>
    </member>
    <member name="M:Gallio.Utilities.ExceptionUtils.SafeGetMessage(System.Exception)">
      <summary>Safely obtains the <see cref="P:System.Exception.Message" /> component of an exception.</summary>
      <returns>The message</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.ExceptionUtils.SafeGetStackTrace(System.Exception)">
      <summary>Safely obtains the <see cref="P:System.Exception.StackTrace" /> component of an exception.</summary>
      <returns>The stack trace</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.ExceptionUtils.SafeToString(System.Exception)">
      <summary>
        <para> Safely converts an exception to a string. </para>
        <para> This method protects the caller from unexpected failures that may occur while reporting an exception of untrusted origin. If an error occurs while converting the exception to a string, this method returns a generic description of the exception that can be used instead of the real thing. </para>
        <para> It can happen that converting an exception to a string produces a secondary exception because the <see cref="M:System.Exception.ToString" /> method has been overridden or because the stack frames associated with the exception are malformed. For example, we observed one case of a <see cref="T:System.TypeLoadException" /> being thrown while printing an exception because one of the stack frames referred to a dynamic method with incorrect metadata. </para>
      </summary>
      <param name="ex">The exception</param>
      <returns>The string contents</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex" /> is null</exception>
    </member>
    <member name="T:Gallio.Utilities.FileSystem">
      <summary>Default implementation of IFileSystem using System.IO classes.</summary>
    </member>
    <member name="M:Gallio.Utilities.FileSystem.CreateDirectory(System.String)">
      <summary>Attempts to create a directory.</summary>
      <param name="path">The location of the directory.</param>
    </member>
    <member name="M:Gallio.Utilities.FileSystem.DeleteFile(System.String)">
      <summary>Attempts to delete a file.</summary>
      <param name="path">The location of the file.</param>
    </member>
    <member name="M:Gallio.Utilities.FileSystem.DirectoryExists(System.String)">
      <summary>Checks if a directory exists (Directory.Exists)</summary>
      <param name="path">The location of the directory.</param>
      <returns>True if the directory exists, otherwise False.</returns>
    </member>
    <member name="M:Gallio.Utilities.FileSystem.FileExists(System.String)">
      <summary>Checks if a given file exists (File.Exists).</summary>
      <param name="path">The path of the file.</param>
      <returns>True if the file exists, otherwise False.</returns>
    </member>
    <member name="M:Gallio.Utilities.FileSystem.IsPathRooted(System.String)">
      <summary>Checks if a path is relative or absolute (Path.IsPathRooted).</summary>
      <param name="path">The path to check.</param>
      <returns>True if the path is absolute, otherwise False.</returns>
    </member>
    <member name="T:Gallio.Utilities.FileUtils">
      <summary>Utilities for manipulating files. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.CanonicalizePath(System.String,System.String)">
      <summary>Makes an absolute path.</summary>
      <param name="baseDirectory">The base directory for resolving relative paths, or null to use the current directory</param>
      <param name="path">The path to canonicalize, or null if none</param>
      <returns>The absolute path, or null if none</returns>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.CanonicalizePaths(System.String,System.Collections.Generic.IList{System.String})">
      <summary>Makes all paths in the list absolute.</summary>
      <param name="baseDirectory">The base directory for resolving relative paths, or null to use the current directory</param>
      <param name="paths">The list of paths to canonicalize in place</param>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.CopyAll(System.String,System.String,System.Boolean)">
      <summary>Recursively copies files and folders from the source path to the destination.</summary>
      <param name="sourcePath">The source file or directory path</param>
      <param name="destPath">The destination file or directory path</param>
      <param name="overwrite">If true, overwrites existing files in the destination</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourcePath" /> or <paramref name="destPath" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.CopyAllIndirect(System.String,System.String,System.Action{System.String},Gallio.Action{System.String,System.String})">
      <summary>Recursively copies files and folders from the source path to the destination using an indirect mechanism to actually create a file or folder.</summary>
      <param name="sourcePath">The source file or directory path</param>
      <param name="destPath">The destination file or directory path</param>
      <param name="createDirectoryAction">A delegate used to create a directory with a given destination directory path, or null to do nothing</param>
      <param name="copyFileAction">A delegate used to copy a source file to a given destination file path, or null to do nothing</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourcePath" /> or <paramref name="destPath" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.CopyStreamContents(System.IO.Stream,System.IO.Stream)">
      <summary>Copies the contents of a source stream to a destination stream.</summary>
      <param name="sourceStream">The source stream</param>
      <param name="destStream">The destination stream</param>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceStream" /> or <paramref name="destStream" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.DeleteAll(System.String)">
      <summary>Recursively deletes a file or directory. Does nothing if the file or directory does not exist.</summary>
      <param name="path">The path</param>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.EncodeFileName(System.String)">
      <summary>Replaces invalid characters in a file or directory name with underscores and trims it if it is too long.</summary>
      <param name="fileName">The file or directory name</param>
      <returns>The encoded file or directory name</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileName" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.GetFullPathOfParentDirectory(System.String)">
      <summary>Gets the full path of the containing directory.</summary>
      <param name="path">The path</param>
      <returns>The full path of the parent directory or null if it is at the root</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.FileUtils.StripTrailingBackslash(System.String)">
      <summary>Strips the trailing backslash off of a directory path, if present.</summary>
      <param name="path">The path to strip, or null if none</param>
      <returns>The stripped path, or null if none</returns>
    </member>
    <member name="T:Gallio.Utilities.StringUtils">
      <summary>Provides utility functions for working with strings. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ParseArguments(System.String)">
      <summary>Parses a string of whitespace delimited and possibly quoted arguments and returns an array of each one unquoted.</summary>
      <param name="arguments">The arguments string, eg. "/foo 'quoted arg' /bar</param>
      <returns>The parsed and unquoted arguments</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="arguments" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ParseKeyValuePair(System.String)">
      <summary>Parses a key/value pair from an input string of the form "key=value", with the value optionally quoted and optional surrounding whitespace removed.</summary>
      <param name="input">The input string</param>
      <returns>The key value pair</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="input" /> is null</exception>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ToCharLiteral(System.Char)">
      <summary>Formats a character value as "'x'" or "'\n'" with support for escaped characters as a valid literal value. Encloses the char in single quotes (').</summary>
      <param name="value">The character value to format</param>
      <returns>The formatted character</returns>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ToHexDigit(System.Int32)">
      <summary>Gets a lowercase hexadecimal digit corresponding to the least significant nybble of the specified value.</summary>
      <param name="value">The value, only the last 4 bits of which are used</param>
      <returns>The hexadecimal digit</returns>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ToStringLiteral(System.String)">
      <summary>Formats a string value as ""abc\ndef"" with support for escaped characters as a valid literal value. Encloses the string in quotes (").</summary>
      <param name="value">The string value to format</param>
      <returns>The formatted string</returns>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ToUnquotedCharLiteral(System.Char)">
      <summary>Escapes a character value as "x" or "\n". Unlike <see cref="M:Gallio.Utilities.StringUtils.ToCharLiteral(System.Char)" />, does not enclose the literal in single quotes (').</summary>
      <param name="value">The character value to format</param>
      <returns>The unquoted char literal</returns>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.ToUnquotedStringLiteral(System.String)">
      <summary>Escapes a string value such as "abc\ndef". Unlike <see cref="M:Gallio.Utilities.StringUtils.ToStringLiteral(System.String)" />, does not enclose the literal in quotes (").</summary>
      <param name="value">The string value to format</param>
      <returns>The unquoted string literal</returns>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.Truncate(System.String,System.Int32)">
      <summary>Truncates the string to the specified maximum length. Discards characters at the end of the string with indices greater than or equal to <paramref name="maxLength" />.</summary>
      <param name="str">The string to truncate</param>
      <param name="maxLength">The maximum length of the string to retain</param>
      <returns>The truncated string</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="str" /> is null</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxLength" /> is negative</exception>
    </member>
    <member name="M:Gallio.Utilities.StringUtils.TruncateWithEllipsis(System.String,System.Int32)">
      <summary>If the string is longer than the specified maximum length, truncates it and appends an ellipsis mark ("..."). If the maximum length is less than or equal to 3, omits the ellipsis mark on truncation.</summary>
      <param name="str">The string to truncate</param>
      <param name="maxLength">The maximum length of the string to retain including the ellipsis mark when used</param>
      <returns>The truncated string</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="str" /> is null</exception>
      <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxLength" /> is negative</exception>
    </member>
    <member name="T:Gallio.Utilities.Sync">
      <summary>Provides helpers for cross-thread synchronization. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Utilities.Sync.Invoke(System.ComponentModel.ISynchronizeInvoke,Gallio.Action)">
      <summary>Synchronizes an action.</summary>
      <param name="invoker">The invoker, such as a WinForms control</param>
      <param name="action">The action</param>
      <exception cref="T:System.Exception">The exception thrown by the action</exception>
    </member>
    <member name="M:Gallio.Utilities.Sync.Invoke``1(System.ComponentModel.ISynchronizeInvoke,Gallio.Func{``0})">
      <summary>Synchronizes a function that returns a value.</summary>
      <typeparam name="T">The function return type</typeparam>
      <param name="invoker">The invoker, such as a WinForms control</param>
      <param name="func">The function</param>
      <returns>The value returned by the function</returns>
      <exception cref="T:System.Exception">The exception thrown by the function</exception>
    </member>
    <member name="T:Gallio.Utilities.XmlSerializationUtils">
      <summary>Utilities and constants used for serialization. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="F:Gallio.Utilities.XmlSerializationUtils.GallioNamespace">
      <summary>The XML namespace for all Gallio XML types. This field is constant and read-only.</summary>
    </member>
    <member name="M:Gallio.Utilities.XmlSerializationUtils.LoadFromXml``1(System.String)">
      <summary>Loads an object graph from an Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <typeparam name="T">The root object type</typeparam>
      <param name="filename">The filename</param>
      <returns>The root object</returns>
    </member>
    <member name="M:Gallio.Utilities.XmlSerializationUtils.SaveToXml``1(``0,System.String)">
      <summary>Saves an object graph to a pretty-printed Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <typeparam name="T">The root object type</typeparam>
      <param name="root">The root object</param>
      <param name="filename">The filename</param>
    </member>
    <member name="T:Gallio.Utilities.XmlUtils">
      <summary>Provides utilities for manipulating Xml. This is a <see langword="static class" /> and so cannot be inherited or instantiated.</summary>
    </member>
    <member name="M:Gallio.Utilities.XmlUtils.WriteToXPathDocument(System.Action{System.Xml.XmlWriter})">
      <summary>Produces an XPathDocument given an action applied to an XmlWriter.</summary>
      <param name="writeAction">The action to perform</param>
      <returns>The XPathDocument</returns>
      <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writeAction" /> is null</exception>
    </member>
    <member name="T:Gallio.Utilities.Hash64">
      <summary>A 64bit hash code value type. Provides somewhat more protection against collisions than 32 bit hashes.</summary>
    </member>
    <member name="M:Gallio.Utilities.Hash64.Add(System.String)">
      <summary>Produces a new hash code by combining information from the specified string with this hash code.</summary>
      <param name="str">The string, may be null if none</param>
      <returns>The augmented hash code</returns>
    </member>
    <member name="M:Gallio.Utilities.Hash64.CreateUniqueHash">
      <summary>Creates a proabilistically unique 64bit hash code.</summary>
    </member>
    <member name="M:Gallio.Utilities.Hash64.Equals(Gallio.Utilities.Hash64)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Utilities.Hash64.Equals(System.Object)">
      <summary>Indicates whether this instance and a specified object are equal.</summary>
      <param name="obj">Another object to compare to.</param>
      <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
    </member>
    <member name="M:Gallio.Utilities.Hash64.GetHashCode">
      <summary>Returns the hash code for this instance.</summary>
      <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
    </member>
    <member name="M:Gallio.Utilities.Hash64.ToString">
      <summary>Returns the fully qualified type name of this instance.</summary>
      <returns>A <see cref="T:System.String" /> containing a fully qualified type name.</returns>
    </member>
    <member name="T:Gallio.Utilities.KeyedMemoizer`2">
      <summary>A structure that memoizes the result of some computation for later reuse. Maintains an internal dictionary to memoize results by key.</summary>
      <typeparam name="TKey">The key type</typeparam>
      <typeparam name="TValue">The value type</typeparam>
    </member>
    <member name="M:Gallio.Utilities.KeyedMemoizer`2.Memoize(`0,Gallio.Func{`1})">
      <summary>Gets the memoized value for the given key if available, otherwise populates it using the specified populator function and stores it in association with its keys for later reuse.</summary>
      <param name="key">The key by which to look up a memoized result</param>
      <param name="populator">The populator for the value associated with the key</param>
      <returns>The value returned by the populator, possibly memoized</returns>
    </member>
    <member name="T:Gallio.Utilities.Memoizer`1">
      <summary>A structure that memoizes the result of some computation for later reuse.</summary>
      <typeparam name="T">The value type</typeparam>
    </member>
    <member name="M:Gallio.Utilities.Memoizer`1.Memoize(Gallio.Func{`0})">
      <summary>Gets the memoized value if available, otherwise populates it using the specified populator function and stores it for later reuse.</summary>
      <param name="populator">The populator</param>
      <returns>The value returned by the populator, possibly memoized</returns>
    </member>
    <member name="T:Gallio.Utilities.IFileSystem">
      <summary>Wrapper for static System.IO.File operations to allow testing.</summary>
    </member>
    <member name="M:Gallio.Utilities.IFileSystem.CreateDirectory(System.String)">
      <summary>Attempts to create a directory.</summary>
      <param name="path">The location of the directory.</param>
    </member>
    <member name="M:Gallio.Utilities.IFileSystem.DeleteFile(System.String)">
      <summary>Attempts to delete a file.</summary>
      <param name="path">The location of the file.</param>
    </member>
    <member name="M:Gallio.Utilities.IFileSystem.DirectoryExists(System.String)">
      <summary>Checks if a directory exists (Directory.Exists)</summary>
      <param name="path">The location of the directory.</param>
      <returns>True if the directory exists, otherwise False.</returns>
    </member>
    <member name="M:Gallio.Utilities.IFileSystem.FileExists(System.String)">
      <summary>Checks if a given file exists (File.Exists).</summary>
      <param name="path">The path of the file.</param>
      <returns>True if the file exists, otherwise False.</returns>
    </member>
    <member name="M:Gallio.Utilities.IFileSystem.IsPathRooted(System.String)">
      <summary>Checks if a path is relative or absolute (Path.IsPathRooted).</summary>
      <param name="path">The path to check.</param>
      <returns>True if the path is absolute, otherwise False.</returns>
    </member>
    <member name="T:Gallio.Utilities.IXmlSerializer">
      <summary>Wrapper for XmlSerializationUtils static methods (allows testing).</summary>
    </member>
    <member name="M:Gallio.Utilities.IXmlSerializer.LoadFromXml``1(System.String)">
      <summary>Loads an object graph from an Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <typeparam name="T">The root object type</typeparam>
      <param name="filename">The filename</param>
      <returns>The root object</returns>
    </member>
    <member name="M:Gallio.Utilities.IXmlSerializer.SaveToXml``1(``0,System.String)">
      <summary>Saves an object graph to a pretty-printed Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer" />.</summary>
      <typeparam name="T">The root object type</typeparam>
      <param name="root">The root object</param>
      <param name="filename">The filename</param>
    </member>
  </members>
</doc>